我有一个 C++ vector ,其中有一些空白元素。我想从 vector 中删除任何空字符串元素。我试过这个代码:
for (i = 0; i < myvector.size();i++) {
if (myvector[i] == "") {
myvector.erase(myvector.begin()+i);
}
}
当我运行此代码时,出现段错误。有什么问题吗?或者这段代码对你们中的任何人都有效?
最佳答案
看来您想要通常的删除-擦除习语:
#include <algorithm>
#include <functional>
myvector.erase(std::remove_if(myvector.begin(), myvector.end(),
std::mem_fn(&std::string::empty)),
myvector.end());
关于C++ Vector.erase() 导致段错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24600301/