C++中deque::begin与deque::assign的区别

C++中deque::begin与deque::assign的区别

双向队列或deque是一种序列容器,具有两端扩展和收缩的特性。它们类似于vector,但在插入和删除元素的末端和开头的情况下更有效。与向量不同,不能保证连续的存储分配。在这里,我们将看到在C++中deque::assign和deque::at之间的区别。

deque::begin

deque::begin用于返回指向deque容器中第一个元素的迭代器。它返回一个随机存取迭代器,指向它。

语法:

iterator begin();

参数: None

返回值: 它的返回值是指向序列容器开头的迭代器。

迭代器有效性: 迭代器的有效性没有改变。

头文件:

<deque>

异常: deque::begin永远不会抛出异常。

示例:

// C++ program to implement deque::begin
  
#include <deque>
#include <iostream>
using namespace std;
  
// Driver code
int main()
{
    // Declaration of Deque
    deque<int> GFG = { 1, 2, 3, 4, 5 };
  
    // Iterator Pointing to the first element in the
    // container
    deque<int>::iterator itr = GFG.begin();
  
    cout << "Elements in Deque are : ";
  
    for (itr = GFG.begin(); itr != GFG.end(); ++itr) {
        cout << *itr << " ";
    }
  
    cout << endl;
    return 0;
}  

输出:

Elements in Deque are : 1 2 3 4 5 
  • 时间复杂度: O(N)
  • 空间复杂度: O(1)

deque::assign

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

语法:

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

参数:

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

返回值: None

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

头文件:

<deque>

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

示例:

// C++程序实现deque::assign
  
#include<deque>
#include<iostream>
使用namespace std;
  
//驱动器代码
int main()
{
    //声明Deque
    deque<int> A = {5, 10, 15, 20};
    deque<int> B;
  
    //遍历deque B的迭代器
    deque<int>::iterator itr1 = B.begin();
  
    //遍历deque A的迭代器
    deque<int>::iterator itr2 = A.begin();
  
    //将deque A元素分配到deque B中
    B.assign(A.begin(), A.end());
  
    cout<<"容器A中的元素是:";
    for (itr2 = A.begin(); itr2!= A.end();++itr2) {
        cout<<*itr2<<" ";
    }
    cout<<endl;
  
    cout<<"容器B中的元素:";
    for (itr1 = B.begin(); itr1!= B.end();++itr1) {
        cout<<*itr1<<" ";
    }
  
    cout<<endl;
    返回0;
}  

输出:

容器A中的元素是:5 10 15 20 
容器B中的元素:5 10 15 20 
  • 时间复杂度: O(N)
  • 空间复杂度: O(N)

deque::assign与deque::begin之间的区别

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

基础 deque::begin deque::assign
定义 它用于返回一个迭代器,该迭代器指向deque容器中的第一个元素。 它用于将新内容返回给deque容器,替换其当前内容
语法 迭代器开始(); dequename.assign( size, val);
参数数量 它不需要任何参数 它需要两个参数。
返回值 其返回值是指向序列容器开头的迭代器。 它没有任何返回类型
复杂度 常量 线性

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程