deque::cbegin 与 deque::assign 在C++中的区别
双端队列或Deque是带有两端扩展和收缩功能的序列容器。它们类似于向量,但在向结尾和开头插入或删除元素的情况下更有效。与向量不同,不一定保证连续的存储分配。在这里,我们将看到deque::assign和deque::at在C++中的区别。
deque::cbegin
deque::cbegin用于返回指向容器中第一个元素的const迭代器。我们不能使用它来修改所指向的迭代器的内容。
语法:
const_iterator cbegin();
参数: 没有
返回值: 指向序列开头的const_iterator。
迭代器有效性: 迭代器有效性没有改变。
头文件:
异常: 它永远不会引发异常。
例子:
输出:
- 时间复杂度 – O(1)
- 空间复杂度 – O(1)
deque::assign
deque::assign用于通过替换其当前内容来为deque容器分配新内容。它会相应地修改大小。
语法:
dequename.assign( <int> size, <int> val)
参数:
- size: 它指定要分配给容器的值的数量。
- val: 它指定要分配给容器的值。
返回值: 无
迭代器有效性: 在此容器中,所有迭代器、指针和引用都无效。
头文件:
异常: 如果抛出异常,则容器处于有效状态。
例子:
输出:
- 时间复杂度: O(N)
- 空间复杂度: O(N)
deque::assign vs deque::cbegin
以下是deque::assign和deque::cbegin之间的区别
基础 | deque::cbegin | deque::assign |
---|---|---|
定义 | 它用于返回指向容器中第一个元素的const迭代器。 | 它用于向deque容器分配新内容,替换其当前内容。 |
语法 | const_iterator cbegin(); | dequename.assign( |
参数 | 不需要任何参数。 | 它需要两个参数,即size和val。 |
返回值 | 它的返回值是指向序列开头的const_iterator。 | 它没有任何返回类型。 |
复杂度 | 常数 | 线性 |