C++ 让if语句只查看字符串中的第一个单词
我有一个由字符串组成的向量,一些字符串有单个单词,一些有多个单词,一些有数字,等等。我有一个代码,如果整个字符串是一个特定的单词(“事件”),则删除向量的元素,该代码可以完美地工作:C++ 让if语句只查看字符串中的第一个单词,c++,string,if-statement,vector,C++,String,If Statement,Vector,我有一个由字符串组成的向量,一些字符串有单个单词,一些有多个单词,一些有数字,等等。我有一个代码,如果整个字符串是一个特定的单词(“事件”),则删除向量的元素,该代码可以完美地工作: for (int j = 0; j< myvec.size()-1; j++) { if(myvec[j] == "<event>") { //erase all instances of "<event>" myvec.erase(myvec.begin(
for (int j = 0; j< myvec.size()-1; j++) {
if(myvec[j] == "<event>") { //erase all instances of "<event>"
myvec.erase(myvec.begin()+j);
}
}
for(int j=0;j
但是,现在我需要删除向量中仅以单词开头的一些元素(这些元素在第一个关键字“wgt”之后都有不同的垃圾)
我不知道如何使它工作。我假设它将类似于上面的for/if循环,我只是不知道如何使if语句只查看字符串中的第一个单词
有什么想法吗
提前感谢!第一行将以“abc”开头的字符串放在末尾,第二行将它们从向量中删除
auto end_it = std::remove_if(myvec.begin(), myvec.end(),
[](const string &str){
return str.find("abc") == 0 ;}) ;
myvec.erase(end_it, myvec.end()) ;
“第一个关键字”是什么?这应该清楚地讨论为什么OP的擦除循环错得如此厉害!我终于让它工作了:)