我正在尝试从向量中获取单个元素并将其推到向量的后面,然后将其删除,这样我就不会在内存中有一个空白部分。erase-remove 习惯用法可以做到这一点,但它会删除特定值的所有实例。我只想删除第一个。
我对标准库算法不太熟悉,也找不到合适的方法(如果有的话)来做到这一点。这是一个例子:
int main() {
std::vector<int> v{1, 2, 3, 3, 4};
remove_first(v, 3);
std::cout << v; // 1, 2, 3, 4
}
那么我将如何从这个向量中删除第一次出现的 3 呢?