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


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


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

双端队列::cbegin

deque::cbegin 用于返回指向容器中第一个元素的 const 迭代器。我们不能用它来修改迭代器指向的内容。

用法:

const_iterator cbegin();

Parameters: None

返回值:const_iterator 到序列的开头。

迭代器有效性:迭代器有效性没有变化

头文件:

<deque>

异常:它从不抛出异常

例子:

C++


// C++ program to demonstrate deque::cbegin 
  
#include <deque> 
#include <iostream> 
using namespace std; 
  
// Driver code 
int main() 
{ 
    // Declaration of Deque 
    deque<int> GFG = { 1, 2, 3, 4, 5 }; 
  
    cout << "Elements in Deque Container are : "; 
    for (auto it = GFG.cbegin(); it != GFG.cend(); ++it) { 
        cout << *it << " "; 
    } 
    cout << endl; 
    return 0; 
}

输出:

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

双端队列::分配

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> A = { 10, 20, 30, 40, 50, 60 }; 
    deque<int> B; 
  
    // Iterator for deque to traverse 
    deque<int>::iterator itr = B.begin(); 
  
    // Assigning deque A elements 
    // into deque B 
    B.assign(A.begin(), A.end()); 
  
    cout << "Elements in Deque B are : "; 
    for (itr = B.begin(); itr != B.end(); ++itr) { 
        cout << *itr << " "; 
    } 
  
    cout << endl; 
    return 0; 
}

输出:

Elements in Deque B are : 10 20 30 40 50 60 
  • 时间复杂度:O(N)
  • 空间复杂度:O(N)

双端队列::分配与双端队列::cbegin

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

基础 双端队列::cbegin 双端队列::分配
Definition 它用于返回指向容器中第一个元素的常量迭代器。 它用于将新内容分配给双端队列容器,替换其当前内容
Syntax const_iterator cbegin(); dequename.assign(<int> size, <int> val);
参数 它不带任何参数。 它需要两个参数,即 size 和 val
返回值 它的返回值是到序列开头的const_iterator。 它没有任何返回类型。
Complexity Constant Linear


相关用法


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