std::vector<string>::iterator p; p = find(v.begin(),v.end(),"asdasda"); cout << *p << endl;
如果“asdasda”不是向量的一部分,则p指向一些垃圾,cout给出一个seg错误.什么应该是if声明会使cout执行onlyif“asdasda”被发现?以及“asdasda”在v中的位置…就像我们之前宣称v [3]为“asdasda”一样,那我怎么知道v [3]是“asdasda”?
if (p != v.end()) { std::cout << "v[" << (p - v.begin()) << "] = "; std::cout << *p << std::endl; }