案例如下:
void func(const std::vector<std::string>& vec){
for(std::vector<std::string>::iterator it = vec.begin();it != vec.end();it++){
//TODO
}
}
我的IDE报告错误:
error: conversion from ‘std::vector<std::__cxx11::basic_string<char> >::const_iterator {aka __gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char>*, std::vector<std::__cxx11::basic_string<char> > >}’ to non-scalar type ‘std::vector<std::__cxx11::basic_string<char> >::iterator {aka __gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*, std::vector<std::__cxx11::basic_string<char> > >}’ requested
我定义的迭代器的类型似乎与引用变量vec.begin()的类型不一致。为了保护引用的向量,我添加了关键字 const ,但我无法弄明白。我错过了c ++的任何基本要素吗?任何建议将非常感谢=)