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