双端队列(Deque)或双端队列是序列容器,具有两端扩展和收缩的特性。它们与向量类似,但在末尾和开头插入和删除元素的情况下效率更高。与向量不同,可能无法保证连续的存储分配。
双端队列::分配
deque::assign 用于通过替换当前内容来将新内容分配给双端队列容器。它会相应地修改大小。
用法:
dequename.assign(<int> size, <int> val)
参数:
- size:它指定要分配给容器的值的数量。
- 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 |
相关用法
- C++ deque::assign和deque::empty的区别用法及代码示例
- C++ deque::assign和deque::at的区别用法及代码示例
- C++ deque::at()、deque::swap()用法及代码示例
- C++ deque::push_back()用法及代码示例
- C++ deque::push_front()用法及代码示例
- C++ deque::emplace_front()、deque::emplace_back()用法及代码示例
- C++ deque::clear()、deque::erase()用法及代码示例
- C++ deque::empty()、deque::size()用法及代码示例
- C++ deque::front()、deque::back()用法及代码示例
- C++ deque::pop_front()、deque::pop_back()用法及代码示例
- C++ deque::cbegin和deque::assign的区别用法及代码示例
- C++ deque::begin和deque::assign的区别用法及代码示例
- C++ deque assign()用法及代码示例
- C++ deque cbegin()用法及代码示例
- C++ deque insert()用法及代码示例
- C++ deque max_size()用法及代码示例
- C++ deque rbegin()用法及代码示例
- C++ deque rend()用法及代码示例
- C++ deque resize()用法及代码示例
- C++ deque crbegin用法及代码示例
- C++ deque crend用法及代码示例
- C++ deque emplace用法及代码示例
- C++ deque get_allocator用法及代码示例
- C++ deque shrink_to_fit用法及代码示例
- C++ delete()用法及代码示例
注:本文由纯净天空筛选整理自mayank007rawa大神的英文原创作品 Difference Between deque::assign and deque::back in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。