У меня есть вектор логических значений ( например, true, true, false, false) и другой вектор того же размера, но другого типа.Я хочу выходной вектор с элементами второго вектора в соответствии с истиной в первом векторе.
По сути, я пытаюсь воспроизвести то, что в Julia или R делают:
vec = vec[to_select]
Я пытался написать copy_if, но, скажем так, компилятор не сделал 'мне это совсем не нравитсяЭто то, что у меня есть
auto it = copy_if(vec.begin(), vec.end(), to_select.begin(), vec.begin(), [](auto& val, auto& cond){return cond;});
А затем изменить его размер:
vec.resize(std::distance(vec.begin(), it));
Любое предложение сделать это чисто и быстро, возможно, без создания нового вектора?