这有效, 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);
到函数 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));
和函数仅用于整数
void def(const int& i) { std::cout << i; }
才不是。(如果我尝试正确,也不能使用 bind。)编译器说 def 函数不能应用正确的转换,即从向量分配器(向量的位置指针?)到 const int&,这是前一个例子用向量分离函数 f 实现的.
这是复杂的还是微不足道的?