Есть ли одно liner (или простое без петли) решение для деинтерлейции нечетных и четных элементов вектора?
Пример:Деинтерлейс нечетные и четные записи вектора C++
long entries[] = {0,1,2,3,4,5,6,7};
std::vector<long> vExample(entries, entries + sizeof(entries)/sizeof(long));
vExample.intertwine(vExample.begin(),vExample.end()); // magic one liner I wish existed...
for (int i = 0; i < vExample.size(); i++)
{
std::cout << vExample[i] << " ";
}
Теперь я хотел бы иметь следующий вывод:
0 2 4 6 1 3 5 7
Это действительно не то, что я бы ожидать чего-то под названием 'переплетаются()', чтобы сделать ... С другой стороны, я не знаю лучшего названия , :) И почему бы просто не написать цикл и не вставить его внутри функции? – unwind
Использование стабильного алгоритма сортировки с компаратором, выполняющим что-то вроде 'if (нечетного) возвращаемого значения; else возвращаемое значение * 100000000' –