迭代器这样用为什么报错呢?
vector<string> vecstr;
vecstr.push_back(string("hello"));
vector<string>::iterator iter = vecstr.begin();
if ( iter )
{
cout << iter->c_str() << endl;
}
报错:
error C2451: conditional expression of type 'std::_Vector_iterator<_Ty,_Alloc>' is illegal
不解啊!
[解决办法]
iterator不能隐式转为bool吧?
是不是想用 if(iter != vecstr.end()) ?
[解决办法]
//最好用这个
if(iter != vecstr.end())
[解决办法]
vector<string>::iterator不是算数类型,不能转换为bool
[解决办法]
这个 iter不能转换为bool类型。