c++中deque::assign与deque::empty的区别

c++中deque::assign与deque::empty的区别

双端队列是一种序列容器,具有两端展开和收缩的特点。它们类似于vector,但是在末尾和开头插入和删除元素时效率更高。与向量不同,可能无法保证连续存储分配。

下面我们将看到c++中deque::assign和deque::empty的区别。

deque::assign

assign的作用是通过替换Deque容器的当前内容来为其赋值新内容。它会相应地改变它的大小。

语法:

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

参数:

  1. size—分配给容器的值的数量。
  2. val—要赋给容器的值。

头文件:

<deque>

异常:如果抛出异常,则容器处于有效状态。

迭代器有效性:在此容器中,所有的迭代器、指针和引用都无效。

示例:

// 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

Deque::empty用于检查Deque容器是否为空。它不会改变容器中的任何东西。

语法:

emtpy();

头文件:

<deque>

异常:它从不抛出任何异常

迭代器的有效性:迭代器的有效性在容器中不会改变。

示例:

// 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的区别

Item deque::assign deque::empty
定义 它用于将新内容赋给deque容器。 它用于检查deque容器是否为空。
语法 dequename.assign(<int> size, <int> val); empty()
参数个数 它只接受两个参数
返回值 布尔
复杂度 线性 常数

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程