表达
myvec.rend().base()
相当于
myvec.begin()
下面是一个示范性例子
#include <iostream>
#include <vector>
int main()
{
std::vector<int> v = { 1, 2, 3, 4, 5 };
std::vector<int>::iterator it = v.rend().base();
std::cout << *it << std::endl;
return 0;
}
输出
1
另一示范程序,显示std::vector<int>::iterator
和std::vector<int>::reverse_iterator
(代替templetae参数int
你可以使用任何类型T
>
#include <iostream>
#include <vector>
int main()
{
std::vector<int> v = { 1, 2, 3, 4, 5 };
if (v.begin() == v.rend().base())
{
std::cout << "v.begin() == v.rend().base()" << std::endl;
}
if (v.end() == v.rbegin().base())
{
std::cout << "v.end() == v.rbegin().base()" << std::endl;
}
return 0;
}
之间的关系
输出是
v.begin() == v.rend().base()
v.end() == v.rbegin().base()
我认为除了'rend'迭代器之外,做这件事的最小信息是从开始到结束的距离。即容器的大小。 – user2079303 2014-11-05 12:43:36
'rend()'和'end()'之间没有关系。重建'end()'所需的最少信息是'end()'。 – 2014-11-05 12:47:41
@ n.m。或'size()' – 2014-11-05 12:49:32