Это работает, for_each передает векторыfor_each (for_each())?
std::vector<int> v(10, 1);
std::vector< std::vector<int> > vv(10, v);
auto vvit = vv.begin();
std::for_each(vvit, vv.end(), f);
функционировать п, которая применяется for_each заново работать с внутренними векторных Интс
void f(const std::vector<int>& v) {std::for_each(v.begin(), v.end(), def);}
но for_each в пределах for_each
std::for_each(vvit, vv.end(), std::for_each((*vvit).begin(), (*vvit).end(), def));
и функции для всего ints
void def(const int& i) { std::cout << i; }
нет. (И не с привязкой, если я попытался правильно.) Компилятор говорит, что функция def не может применить правильное преобразование, т. Е. От векторного распределителя (указателя позиции вектора?) К const int &, что бы то ни было в первом примере с функцией разделения вектора е.
Является ли это сложным или тривиальным?
Что такое ваш вопрос? Вам интересно, почему это не работает? Зачем вам это ожидать? –
Извините, да, почему for_each не принимает внутренний for_each как аргумент функции, внешний применяется к внешнему вектору, а внутренний - к [каждому] внутреннему вектору? Так что это тривиально, почему? –
на отражение, это должно быть «почему функция def не применяется так, чтобы ее параметр соответствовал целям вектора»? –