我有一个由字符串组成的向量,一些字符串有单个单词,一些有多个单词,有些有数字等。我有一个代码删除向量的元素如果整个字符串是一个特定的单词(“事件”) )完美运作:
for (int j = 0; j< myvec.size()-1; j++) {
if(myvec[j] == "<event>") { //erase all instances of "<event>"
myvec.erase(myvec.begin()+j);
}
}
然而,现在我需要删除向量中只有一个单词START的几个元素(这些元素在第一个关键词“wgt”之后都有不同的垃圾
我不知道如何让这个工作。我假设它将类似于上面的/ if循环,我只是不知道如何使if语句只查看字符串中的第一个单词。
有什么想法吗?
提前致谢!
答案 0 :(得分:4)
第一行将字符串以&#39; abc&#39;开头。最后,第二个从矢量中删除它们。
auto end_it = std::remove_if(myvec.begin(), myvec.end(),
[](const string &str){
return str.find("abc") == 0 ;}) ;
myvec.erase(end_it, myvec.end()) ;