当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ deque::assign和deque::back的区别用法及代码示例


双端队列(Deque)或双端队列是序列容器,具有两端扩展和收缩的特性。它们与向量类似,但在末尾和开头插入和删除元素的情况下效率更高。与向量不同,可能无法保证连续的存储分配。

双端队列::分配

deque::assign 用于通过替换当前内容来将新内容分配给双端队列容器。它会相应地修改大小。

用法:

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

参数:

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

返回值:None

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

头文件:

<deque>

例子:

C++


// C++ program to demonstrate deque::assign 
#include <deque> 
#include <iostream> 
using namespace std; 
  
// Driver code 
int main() 
{ 
    // Declaration of Deque 
    deque<int> one = { 7, 14, 21, 28, 35 }; 
    deque<int> two; 
  
    // Iterator for deque to traverse 
    deque<int>::iterator itr = two.begin(); 
  
    // Assigning  deque<int>one elements 
    // into deque<int>two 
    two.assign(one.begin(), one.end()); 
  
    cout << "Elements of deque<int>one are : "; 
    for (itr = one.begin(); itr != one.end(); ++itr) { 
        cout << *itr << " "; 
    } 
    cout << endl; 
    cout << "Elements of deque<int>two are : "; 
    for (itr = two.begin(); itr != two.end(); ++itr) { 
        cout << *itr << " "; 
    } 
  
    cout << endl; 
    return 0; 
}

输出:

Elements of deque<int>one are : 7 14 21 28 35 
Elements of deque<int>two are : 7 14 21 28 35 

时间复杂度:O(N)

空间复杂度:O(N)

双端队列::返回

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

用法:

deque_name.back()

Parameters: 它不带任何参数

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

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

头文件:

<deque>

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

例子:

C++


// C++ program to demonstrate deque::back 
  
#include <deque> 
#include <iostream> 
using namespace std; 
  
// Driver code 
int main() 
{ 
    // Declaration of Deque 
    deque<int> GFG = { 10, 20, 30, 40, 50, 60 }; 
  
    int last_element = GFG.back(); 
    cout << "Last ELement is : " << last_element << endl; 
    return 0; 
}

输出 -:

Last ELement is : 60

时间复杂度:O(1)

空间复杂度:O(1)

双端队列::分配与双端队列::返回

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

基础 双端队列::分配 双端队列::返回
Definition 它用于将新内容分配给双端队列容器,替换其当前内容。 它用于返回对容器中最后一个元素的引用。
Syntax dequename.assign(<int> size, <int> val); 双端队列名称.back()
参数数量 它需要两个参数 它不带任何参数。
返回值 它没有任何返回值。 它的返回值是Integer类型
Complexity Linear Constant


相关用法


注:本文由纯净天空筛选整理自mayank007rawa大神的英文原创作品 Difference Between deque::assign and deque::back in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。