0
ベクタータイプの文字列から特定のインデックスを削除する際に問題があります。私の仕事は、htmlタグ(html、headなど)でベクトルを埋め込むことですが、一致のないタグを取り除く必要があります(p、br、imgのみと仮定)。 forループの後にベクターを印刷するたびに、私は迷子brとpを取得します。助けていただければ幸いです!特定のインデックスにあるベクトルの要素を削除する
for (int i = 0; i < tagStorage.size(); i++) {
if (tagStorage[i].find_first_of('/') == true) { //searches for closing tags
closingTags.push_back(tagStorage[i]);
}
else if (tagStorage[i].find("<p>") != string::npos) { //searches for <p> tag
noMatch.push_back(tagStorage[i]);
tagStorage.erase(tagStorage.begin() + i); //erase tag
}
else if (tagStorage[i].find("<br>") != string::npos) { //searches for <br> tag
noMatch.push_back(tagStorage[i]);
tagStorage.erase(tagStorage.begin() + i); //erase tag
}
else if (tagStorage[i].find("<img") != string::npos) { //searches for <img ..> tag
noMatch.push_back(tagStorage[i]);
tagStorage.erase(tagStorage.begin() + i); //erase tag
}
else {
openingTags.push_back(tagStorage[i]);
}
}
http://stackoverflow.com/questions/4442477/remove-ith-item-from-a-c-stdvectorからの回答を試す –