溫馨提示×

c++中remove()函數(shù)如何刪除元素

c++
小樊
86
2024-09-25 05:45:30
欄目: 編程語言

在 C++ 標(biāo)準(zhǔn)庫 <algorithm> 中,remove() 函數(shù)用于從一個序列中移除特定元素。它的原型如下:

template <class ForwardIterator, class T>
ForwardIterator remove(ForwardIterator first, ForwardIterator last, const T& value);

參數(shù)說明:

  • firstlast 分別表示要處理的序列的起始和結(jié)束迭代器;
  • value 表示要移除的元素值。

remove() 函數(shù)并不會真正刪除元素,而是將不需要刪除的元素移到序列的前面,并返回一個指向“新”結(jié)束的迭代器。需要注意的是,這個迭代器并不指向被刪除元素的位置。

下面是一個使用 remove() 函數(shù)的例子:

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> v = {1, 2, 3, 3, 4, 3, 5};
    
    // 使用 remove() 函數(shù)移除所有的 3
    auto new_end = std::remove(v.begin(), v.end(), 3);
    
    // 使用 erase() 函數(shù)刪除“新”結(jié)束位置之前的元素
    v.erase(new_end, v.end());
    
    // 輸出處理后的向量
    for (int x : v) {
        std::cout<< x << " ";
    }
    
    return 0;
}

輸出結(jié)果:

1 2 4 5

0