C++ STL deque::begin() 和deque::end
Deque 或双端队列是一种序列容器,具有两端的扩展和收缩功能。它们类似于向量,但在末尾和开头插入和删除元素的情况下更加有效。与向量不同,可能无法保证连续的存储分配。
deque::begin()
begin() 函数用于返回指向deque容器的第一个元素的迭代器。begin() 函数 返回一个双向迭代器 ,指向容器的第一个元素。
语法:
dequename.begin()
参数:
不传递参数。
返回值:
此函数返回指向第一个元素的双向迭代器。
示例:
Input : mydeque{1, 2, 3, 4, 5};
mydeque.begin();
Output : 返回指向元素1的迭代器
Input : mydeque{8, 7};
mydeque.begin();
Output : 返回指向元素8的迭代器
错误和异常 1.它没有异常抛出保证. 2.传入参数时会出错。
// CPP program to illustrate
// Implementation of begin() function
#include <deque>
#include <iostream>
using namespace std;
int main()
{
// declaration of deque container
deque<int> mydeque{ 1, 2, 3, 4, 5 };
// using begin() to print deque
for (auto it = mydeque.begin(); it != mydeque.end(); ++it)
cout << ' ' << *it;
return 0;
}
输出:
1 2 3 4 5
时间复杂度: O(1)
deque::end()
end() 函数用于返回指向deque容器的最后一个元素的迭代器。end() 函数 返回一个双向迭代器 ,指向容器的最后一个元素。注意:“任何容器”的最后一个元素被认为是存储在容器中的最后一个值的理论元素的下一个元素。
语法:
dequename.end()
参数:
不传递参数。
返回值:
此函数返回指向最后一个元素的双向迭代器。
示例:
Input : mydeque{1, 2, 3, 4, 5};
mydeque.end();
Output : 返回指向元素 5 下一个元素的迭代器
Input : mydeque{8, 7};
mydeque.end();
Output : 返回指向元素 7 下一个元素的迭代器
错误和异常 1.它没有异常抛出保证. 2.传入参数时会出错。
// CPP program to illustrate
// Implementation of end() function
#include <deque>
#include <iostream>
using namespace std;
int main()
{
// declaration of deque container
deque<int> mydeque{ 1, 2, 3, 4, 5 };
// using end() to print deque
for (auto it = mydeque.begin(); it != mydeque.end(); ++it)
cout << ' ' << *it;
return 0;
}
输出:
1 2 3 4 5
时间复杂度: O(1)
让我们以表格形式查看差异:
ID | deque::begin() | deque::end |
---|---|---|
1. | 用于返回指向deque容器中第一个元素的迭代器。 | 用于返回指向deque容器末尾元素后面的迭代器。 |
2. | 语法为:iterator begin(); | 语法为: iterator end(); |
3. | 不接受任何参数。 | 不接受任何参数。 |
4. | 时间复杂度为常数。 | 时间复杂度为常数。 |
5. | 其迭代器的有效性不会改变。 | 其迭代器的有效性不会改变。 |