例如,这里是函数:
void process(const vector<MyItem> & list){
vector<MyItem>::iterator iter;
...
}
然而它不会编译。 我怎样才能解决这个问题? 非常感谢!
答案 0 :(得分:1)
您需要const_iterator
时需要const &
:
void process(const vector<MyItem> & list){
vector<MyItem>::const_iterator iter;
...
}
答案 1 :(得分:0)
您还可以使用auto
和一个从该向量获取迭代器的函数(或<algorithm>
中的函数,返回一个函数,例如std::find
):
void process(const vector<MyItem> & list){
auto begin = list.begin();
auto end = list.end()
...
}
这将确保您始终获得正确的类型,无论参数类型如何(此处,const
实际上意味着您需要const_iterator
)。