我是一个相对有经验的程序员,回来参加一些 C++ 复习课程。我们有一个任务是编写几个相对简单的 c++ 程序。遇到一个我不习惯的奇怪错误,但我确信这对这个社区来说是儿戏。
int pull_next_element (int r, std::vector<int>& sequence) {
int x = sequence[0];
sequence.erase(sequence.begin()); //orig: sequence.erase(0);
return x;
}
我得到的错误:
Error C2664: 'std::_Vector_iterator<_Myvec> std::vector<_Ty>::erase(std::_Vector_const_iterator<_Myvec>)' : cannot convert parameter 1 from 'int' to 'std::_Vector_const_iterator<_Myvec>'
编辑:替换为迭代器而不是数字索引,否则在整个代码中解决了这个问题。感谢大家。