Допустим, у меня есть вектор чисел, и я хочу создать два вектора, чтобы разделить числа на нечетные и четные. Легко с простой для:
std::vector<int> odds;
std::vector<int> evens;
std::vector<int> numbers;
for (int number : numbers) {
if isOdd(number)
odds.push_back(number);
else
evens.push_back(number);
}
Я хотел бы знать, есть ли какой-нибудь insertter_iterator, который может сделать это, чтобы я мог написать что-то вроде
std::vector<int> odds;
std::vector<int> evens;
std::vector<int> numbers;
auto pred = [](int i) { return isOdd(i) ? True : False;};
auto identity = [](int i) {return i;};
std::transform(std::begin(numbers), std::end(numbers), some_inserter(odd, evens, pred), identity);
Это просто из любопытства я пытаюсь узнать, как работают алгоритмы и итераторы. Также возможно решение на основе диапазонов.