deque::assign 和 deque::back 在 C++ 中的区别
双端队列或deque是具有两端扩展和收缩功能的顺序容器。它们类似于向量,但在插入和删除元素时更高效,包括在末尾和开头。与向量不同,不一定保证连续的存储分配。
deque::assign
deque::assign用于通过替换其当前内容来分配新内容到deque容器中。它相应地修改尺寸。
语法:
dequename.assign(<int> size, <int> val)
参数:
- size: 它指定要分配到容器中的值的数量。
- val: 它指定要分配到容器中的值。
返回值: None
迭代器有效性: 在此容器中,所有迭代器、指针和引用都无效。
头文件:
示例:
输出:
时间复杂度: O(N)
空间复杂度: O(N)
deque::back
deque::back用于返回容器中最后一个元素的引用。它返回元素的直接引用。
语法:
deque_name.back()
参数: 它不需要任何参数
返回值: Deque::back接受整数类型返回值。
迭代器有效性: 在此容器中,所有迭代器、指针和引用都无效。
头文件:
<deque>
异常: 如果容器为空,则会导致未定义行为。
示例:
输出:
时间复杂度: 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() |
参数数量 | 它有两个参数 | 它不需要任何参数。 |
返回值 | 它没有任何返回值。 | 它的返回值是整数类型。 |
复杂度 | 线性 | 常数 |