C++ Deque::erase() 函式



C++ 的 std::deque::erase() 函式用於從 deque 中刪除由迭代器或範圍指定的元素。它可以刪除給定位置的單個元素,也可以刪除由兩個迭代器定義的元素範圍。刪除後,它會相應地調整 deque 的大小。

此函式有兩個多型變體:帶位置版本或範圍版本(您可以在下面找到所有變體的語法)。

語法

以下是 std::deque::erase() 函式的語法。

iterator erase (const_iterator position );
or
iterator erase (const_iterator first, const_iterator last );

引數

  • position - 指示指向要刪除的單個元素的迭代器。
  • first, last - 指示指定 deque 中要刪除元素的範圍的迭代器。

position - 迭代器指向 deque 元素。

返回值

它返回一個指向元素新位置的迭代器。

異常

如果 position 無效,則會丟擲異常(未定義行為)。

時間複雜度

此函式的時間複雜度為線性,即 O(n)

示例

讓我們來看下面的例子,我們將使用位置版本來刪除元素。

#include <iostream>
#include <deque>
int main()
{
    std::deque<char> a = {'A', 'B', 'C', 'D', 'E'};
    auto x = a.begin() + 2;
    a.erase(x);
    for (char num : a) {
        std::cout << num << " ";
    }
    std::cout << std::endl;
    return 0;
}

輸出

以上程式碼的輸出如下:

A B D E 

示例

考慮另一種情況,我們將使用範圍版本刪除元素。

#include <iostream>
#include <deque>
int main()
{
    std::deque<int> a = {1, 22,321,4321,12345};
    auto x = a.begin() + 1;
    auto y = a.begin() + 4;
    a.erase(x, y);
    for (auto num : a) {
        std::cout << num << " ";
    }
    std::cout << "\n";
    return 0;
}

輸出

以下是以上程式碼的輸出:

1 12345
deque.htm
廣告