如何在向量中搜索元素?

Pra*_*van 6 c++ vector find

我有这样的代码....

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)