#include <vector>
#include <iostream>
#include <algorithm>
#include <iterator>
using std::vector;
using std::cout;
using std::ostream_iterator;
int main()
{
vector<int> vec_int{ 1,2,3 };
std::for_each(vec_int.crbegin(), vec_int.rend(), [](const int & i) { cout << i;});
return 0;
}
错误是:
C2782:&#39; _Fn1 std :: for_each(_InIt,_InIt,_Fn1)&#39;:模板参数&#39; _InIt&#39;含糊不清
谁能说出如何正确使用for_each?
答案 0 :(得分:6)
您正在混合const
和非const
迭代器。那些是不同的类型,因此模板参数推断失败。使用其中任何一个作为两个参数:
std::for_each(vec_int.crbegin(), vec_int.crend(), [](const int & i) { cout << i;});
^