zmi*_*ard 3 c++ iterator vector
我碰到的一个问题,与3号线 - "不匹配函数调用为std ::矢量::的push_back(INT*)常量" - 可有人向我解释,此问题将是从哪里来的,我怎么能解决这个问题?
for(int i = 1; i < 7; i++){
for(vector< vector<int> >::const_iterator it = x.begin(); it < x.end(); it++){
it->push_back(i);
}
}
Run Code Online (Sandbox Code Playgroud)
你正在使用一个迭代const_iterator.根据定义,您无法修改const_iterator引用内容.使用非const iterator代替:
for(vector< vector<int> >::iterator it = x.begin(); it != x.end(); it++){
it->push_back(i);
Run Code Online (Sandbox Code Playgroud)
或者,更好的是,您应该使用现代C++ 11或更高版本:
for (auto &x_vector: x)
x_vector.push_back(i);
Run Code Online (Sandbox Code Playgroud)
难道你不认为现代C++更容易编写和理解吗?