當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ deque::assign和deque::empty的區別用法及代碼示例


雙端隊列(Deque)或雙端隊列是序列容器,具有兩端擴展和收縮的特性。它們與向量類似,但在末尾和開頭插入和刪除元素的情況下效率更高。與向量不同,可能無法保證連續的存儲分配。

這裏我們將看到 C++ 中 deque::assign 和 deque::at 之間的區別。

雙端隊列::分配

deque::assign 用於通過替換當前內容來將新內容分配給雙端隊列容器。它會相應地改變其大小。

用法:

dequename.assign(<int> size, <int> val)

參數:

  1. size -要分配給容器的值的數量。
  2. val -要分配給容器的值。

頭文件:

<deque>

異常:如果拋出異常,則容器處於有效狀態。

迭代器有效性:在此容器中,所有迭代器、指針和引用均無效。

例子:

C++


// C++ program to implement deque::assign
#include <deque>
#include <iostream>
using namespace std;
int main()
{
    // Declaration of Deque
    deque<int> d1 = { 1, 3, 6, 0, 0 };
    deque<int> d2;
    // Assigning d1 deque elements
    // into d2 deque
    d2.assign(d1.begin(), d1.end());
    cout << "Elements in d2 container are : ";
    for (auto it = d2.begin(); it != d2.end(); ++it) {
        cout << *it << " ";
    }
    cout << endl;
    return 0;
}
輸出
Elements in d2 container are : 1 3 6 0 0 
  • 時間複雜度 -O(N)
  • 空間複雜度 -O(N)

雙端隊列::空

deque::empty 用於檢查雙端隊列容器是否為空。它不會改變容器中的任何內容。

用法:

empty();

頭文件:

<deque>

異常:它永遠不會拋出任何異常

迭代器有效性:迭代器有效性在此容器中不會改變。

例子:

C++


// C++ program to implement deque::empty
#include <deque>
#include <iostream>
using namespace std;
int main()
{
    // Declaration of Deque
    deque<int> GFG = { 1, 3, 6, 0, 0 };
    if (GFG.empty() == true) {
        cout << "The deque is empty" << endl;
    }
    else {
        cout << "The deque is not empty" << endl;
    }
    return 0;
}
輸出
The deque is not empty
  • 時間複雜度 -O(1)
  • 空間複雜度 -O(1)

deque::assign 和 deque::empty 之間的區別

Basis

雙端隊列::分配

雙端隊列::空

定義 它用於將新內容分配給雙端隊列容器。 它用於檢查雙端隊列是否為空。
用法 dequename.assign(<int> size, <int> val); empty()
參數數量 隻需要兩個參數 None
返回值 None Boolean
複雜度 Linear Constant


相關用法


注:本文由純淨天空篩選整理自mayankrawal545大神的英文原創作品 Difference Between deque::assign and deque::empty in C++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。