y
- целое число без знака, которое представляет список бит. v
- это вектор целых чисел, содержащий только 0 и 1. Я хотел бы установить значения v
в y
эффективным образом. Я бы сделалОт вектора `int` до последовательности бит
for (int i ; i<v.size() ; ++i)
{
y ^= (-v[i]^y) & (1 << i);
}
Это эффективный или есть лучший способ сделать это?
ли 'v [0]' представляют наименьший значащий бит или старший бит? Ваш код должен отличаться в зависимости от ответа на этот вопрос. –
Может быть что-то использовать 'std :: bitset'. Воздерживаться, используя 'std :: vector'. Также определите __efficient пожалуйста. –
Вы знаете о большой фразе о «преждевременной оптимизации» Дональда Кнута. Надеюсь, – agg3l