我有这样的代码....
std::vector<string>::iterator p;
p = find(v.begin(),v.end(),"asdasda");
cout << *p << endl;
Run Code Online (Sandbox Code Playgroud)
如果"asdasda"不是向量的一部分,则p指向一些垃圾,cout给出一个seg错误.什么应该是if声明会使cout执行onlyif"asdasda"被发现?以及"asdasda"在v中的位置...就像我们之前宣称v [3]为"asdasda"一样,那我怎么能从发现中知道v [3]是"asdasda"?
ken*_*ytm 12
p不指向"垃圾",它只是v.end()在找不到内容时.
if (p != v.end()) {
std::cout << "v[" << (p - v.begin()) << "] = ";
std::cout << *p << std::endl;
}
Run Code Online (Sandbox Code Playgroud)