表達
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