deque::assign 和 deque::back 在 C++ 中的区别

deque::assign 和 deque::back 在 C++ 中的区别

双端队列或deque是具有两端扩展和收缩功能的顺序容器。它们类似于向量,但在插入和删除元素时更高效,包括在末尾和开头。与向量不同,不一定保证连续的存储分配。

deque::assign

deque::assign用于通过替换其当前内容来分配新内容到deque容器中。它相应地修改尺寸。

语法:

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

参数:

  1. size: 它指定要分配到容器中的值的数量。
  2. val: 它指定要分配到容器中的值。

返回值: None

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

头文件:

<deque>

示例:

// C++程序演示deque::assign
#include <deque>
#include <iostream>
using namespace std;
  
// 驱动程序
int main()
{
    // 声明 deque
    deque<int> one = { 7, 14, 21, 28, 35 };
    deque<int> two;
  
    // 使用deque迭代器遍历
    deque<int>::iterator itr = two.begin();
  
    // 分配 deque<int>one的元素
    // 给到 deque<int>two
    two.assign(one.begin(), one.end());
  
    cout << "deque<int>one的元素是:";
    for (itr = one.begin(); itr != one.end(); ++itr) {
        cout << *itr << " ";
    }
    cout << endl;
    cout << "deque<int>two的元素是:";
    for (itr = two.begin(); itr != two.end(); ++itr) {
        cout << *itr << " ";
    }
    
    cout << endl;
    return 0;
}  

输出:

deque<int>one的元素是:7 14 21 28 35
deque<int>two的元素是:7 14 21 28 35

时间复杂度: O(N)

空间复杂度: O(N)

deque::back

deque::back用于返回容器中最后一个元素的引用。它返回元素的直接引用。

语法:

deque_name.back()

参数: 它不需要任何参数

返回值: Deque::back接受整数类型返回值。

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

头文件:

<deque>

异常: 如果容器为空,则会导致未定义行为。

示例:

// C++程序演示deque::back
  
#include <deque>
#include <iostream>
using namespace std;
  
// 驱动程序
int main()
{
    // 声明 deque
    deque<int> GFG = { 10, 20, 30, 40, 50, 60 };
  
    int last_element = GFG.back();
    cout << "最后一个元素是:" << last_element << endl;
    return 0;
}  

输出:

最后一个元素是:60

时间复杂度: O(1)

空间复杂度: O(1)

deque::assign vs deque::back

下面是deque::assign和deque::back之间的区别

基础 deque::assign deque::back
定义 它用于向deque容器分配新的内容,取代其当前内容。 它用于返回容器中最后一个元素的引用。
语法 dequename.assign(<int> size, <int> val); dequename.back()
参数数量 它有两个参数 它不需要任何参数。
返回值 它没有任何返回值。 它的返回值是整数类型。
复杂度 线性 常数

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程