const vector作为函数形参时,要使用迭代器,必须用const_iterator,否则编译不通过。
报错如下:
error: conversion from ‘std::vector<int>::const_iterator {aka __gnu_cxx::__normal_iterator<const int*, std::vector<int> >}’ to non-scalar type ‘std::vector<int>::iterator {aka __gnu_cxx::__normal_iterator<int*, std::vector<int> >}’ requested
vector<int>::iterator my = ();
正确写法如下:
void print_vector(const vector<int>& test) {
vector<int>::const_iterator my = test.begin();
while(my != test.end()) {
cout << "my - () = " << my - test.begin() << endl;
cout << *my++ << "\n"; //先取值再++
}
cout << endl;
}