在 C++ 標準庫 <algorithm>
中,remove()
函數用于從一個序列中移除特定元素。它的原型如下:
template <class ForwardIterator, class T>
ForwardIterator remove(ForwardIterator first, ForwardIterator last, const T& value);
參數說明:
first
和 last
分別表示要處理的序列的起始和結束迭代器;value
表示要移除的元素值。remove()
函數并不會真正刪除元素,而是將不需要刪除的元素移到序列的前面,并返回一個指向“新”結束的迭代器。需要注意的是,這個迭代器并不指向被刪除元素的位置。
下面是一個使用 remove()
函數的例子:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> v = {1, 2, 3, 3, 4, 3, 5};
// 使用 remove() 函數移除所有的 3
auto new_end = std::remove(v.begin(), v.end(), 3);
// 使用 erase() 函數刪除“新”結束位置之前的元素
v.erase(new_end, v.end());
// 輸出處理后的向量
for (int x : v) {
std::cout<< x << " ";
}
return 0;
}
輸出結果:
1 2 4 5