Size: a a a

2019 February 12

AS

Alexander Shumeyko in Unreal Engine
Anton Rassadin
В публичном интерфейсе их нет. Зачем тебе?
Нужно получить последний элемент
источник

AR

Anton Rassadin in Unreal Engine
Alexander Shumeyko
Нужно получить последний элемент
Последний по какому порядку?
источник

AS

Alexander Shumeyko in Unreal Engine
Anton Rassadin
Последний по какому порядку?
По тому как контейнер отсортирует ключи
источник

AR

Anton Rassadin in Unreal Engine
Alexander Shumeyko
По тому как контейнер отсортирует ключи
Что-то такое
Auto key = Foo.GetKeys().Last(0);
Foo[key];

Но у тебя задача намекает, что что-то пошло не так.
источник

AS

Alexander Shumeyko in Unreal Engine
Anton Rassadin
Что-то такое
Auto key = Foo.GetKeys().Last(0);
Foo[key];

Но у тебя задача намекает, что что-то пошло не так.
Всё идёт так, GetKeys аллоцирует память, это совершённо ни к чему
источник

AR

Anton Rassadin in Unreal Engine
Anton Rassadin
Что-то такое
Auto key = Foo.GetKeys().Last(0);
Foo[key];

Но у тебя задача намекает, что что-то пошло не так.
GetKeys не такая сигнатура, но идея ясна.
источник

AR

Anton Rassadin in Unreal Engine
Alexander Shumeyko
По тому как контейнер отсортирует ключи
Ты уверен, что там stable sort?
В общем по-хорошему ответ «никак».
источник

AS

Alexander Shumeyko in Unreal Engine
Anton Rassadin
Ты уверен, что там stable sort?
В общем по-хорошему ответ «никак».
Да я уже понял что никак) буду делать велосипед или стл
источник

n

norlin in Unreal Engine
Alexander Shumeyko
Да я уже понял что никак) буду делать велосипед или стл
но зачем? :)
источник

n

norlin in Unreal Engine
(просто интересно, что за задача)
источник

n

norlin in Unreal Engine
А тут в шейдерах кто-нибудь понимает?

Вот такое можно как-то проще переписать?

float Attenuation = max(1.2f * step(1.f, Intensity), max(ShadowIntensity, step(Threshold, Intensity)));


В целом, мне нужно вот такое:
if (Intensity > 1.f) {
Attenuation = 1.2f;
} else if (Intensity > Threshold) {
Attenuation = 1.f;
} else {
Attenuation = ShadowIntensity;
}
источник

AS

Alexander Shumeyko in Unreal Engine
norlin
но зачем? :)
Есть TMap<int32, ElemType>, ключ является уникальным ид объекта, я создаю объект и хочу добавить его в TMap, где ключ = последний_Ключ + 1
источник

n

norlin in Unreal Engine
Alexander Shumeyko
Есть TMap<int32, ElemType>, ключ является уникальным ид объекта, я создаю объект и хочу добавить его в TMap, где ключ = последний_Ключ + 1
просто храни последний ключ отдельно
источник

AS

Alexander Shumeyko in Unreal Engine
Это и называется велосипед
источник

n

norlin in Unreal Engine
дёргать мапу чтоб получить ключ это странно + почти наверняка вылезут баги из-за нестабильной сортировки
источник

n

norlin in Unreal Engine
Alexander Shumeyko
Это и называется велосипед
нет, это наоборот более корректное решение, чем то, что ты пытаешься сделать
источник

n

norlin in Unreal Engine
более лёгкое, простое и безбаговое. И более очевидное.
источник

СВ

Сэр Гусь Важный... in Unreal Engine
norlin
А тут в шейдерах кто-нибудь понимает?

Вот такое можно как-то проще переписать?

float Attenuation = max(1.2f * step(1.f, Intensity), max(ShadowIntensity, step(Threshold, Intensity)));


В целом, мне нужно вот такое:
if (Intensity > 1.f) {
Attenuation = 1.2f;
} else if (Intensity > Threshold) {
Attenuation = 1.f;
} else {
Attenuation = ShadowIntensity;
}
чем меньше if в шейдерах - тем лучше
источник

n

norlin in Unreal Engine
Сэр Гусь Важный
чем меньше if в шейдерах - тем лучше
поэтому я и написал вон то через max и step. Но вопрос в том, можно ли как-то ещё упростить или улучшить
источник

A

Alex in Unreal Engine
соглашусь, шо очень странное решение
источник