C++ Deque::assign() 函式



C++ 的 std::deque::assign() 函式用於用新元素替換 deque 的元素。它用於管理和更新 deque 資料,確保它在指定位置儲存所需的元素。此函式有 3 個多型變體:使用範圍版本、填充版本和初始化列表版本(您可以在下面找到所有變體的語法)。

語法

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

void assign (InputIterator first, InputIterator last);
or
void assign (size_type n, const value_type& val);
or
void assign (initializer_list<value_type> il);

引數

  • first, last − 指示序列中初始和最終位置的輸入迭代器。
  • n − 指示容器的新大小。
  • val − 指示用於填充容器的值。
  • il − 指示一個初始化列表物件。

返回值

此函式不返回任何內容。

異常

如果 first 和 last 的指定無效,則此函式返回未定義。

時間複雜度

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

示例

讓我們看一下下面的示例,我們將從初始化列表中分配元素。

#include <iostream>
#include <deque>
int main()
{
    std::deque<char> a;
    a.assign({'A', 'B', 'C', 'D'});
    for (auto& elem : a) {
        std::cout << elem << " ";
    }
    std::cout << std::endl;
    return 0;
}

輸出

以上程式碼的輸出如下:

A B C D 

示例

考慮以下示例,我們將分配元素的範圍。

#include <iostream>
#include <deque>
int main()
{
    std::deque<int> x;
    std::deque<int> y = {1, 22, 333, 4444};
    x.assign(y.begin(), y.end());
    for (auto& elem : x) {
        std::cout << elem << " ";
    }
    std::cout << std::endl;
    return 0;
}

輸出

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

1 22 333 4444 

示例

在以下示例中,我們將用值 11 分配 3 個元素。

#include <iostream>
#include <deque>
int main()
{
    std::deque<int> a;
    a.assign(3, 11);
    for (auto& elem : a) {
        std::cout << elem << " ";
    }
    std::cout << std::endl;
    return 0;
}

輸出

如果我們執行以上程式碼,它將生成以下輸出:

11 11 11 
deque.htm
廣告