我试图从 vector 中获取单个元素并将其推到 vector 的后面,然后将其删除,这样内存中就不会出现空白部分。 erase-remove 习语可以做到这一点,但它会删除特定值的所有 实例。我只想删除第一个。
我对标准库算法不太熟悉,也找不到合适的方法(如果有的话)来执行此操作。这是一个例子:
int main() {
std::vector<int> v{1, 2, 3, 3, 4};
remove_first(v, 3);
std::cout << v; // 1, 2, 3, 4
}
那么我该如何从这个 vector 中移除第一次出现的 3 呢?
最佳答案
先找到,再删除:
auto it = std::find(v.begin(),v.end(),3);
// check that there actually is a 3 in our vector
if (it != v.end()) {
v.erase(it);
}
关于c++ - 如何从 vector 中删除第一次出现的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14737780/