标签:两种 ras 不同 reverse iterator class 方法 产生 nts
reverse_iterator<vector<int>::iterator> ritr;
vector<int>::reverse_iterator ritr;
vector<int> vec = {4,5,6,7};
reverse_iterator<vector<int>::iterator> ritr;
for (ritr = vec.rbegin(); ritr != vec.rend(); ritr++)
cout << *ritr << endl; // prints: 7 6 5 4
vector<int>::iterator itr;
vector<int>::reverse_iterator ritr;
ritr = vector<int>::reverse_iterator(itr); //迭代器-->反向迭代器
itr = vector<int>::iterator(ritr); // 编译错误
itr = ritr.base(); //返回什么?
// C++标准说: base()返回当前的迭代器
vector<int> vec = {1,2,3,4,5};
vector<int>::reverse_iterator ritr = find(vec.rbegin(), vec.rend(), 3);
cout << (*ritr) << endl; // 3
vector<int>::iterator itr = ritr.base();
cout << (*itr) << endl; // 4
//插入,结果一样
vec = {1,2,3,4,5};
ritr = find(vec.rbegin(), vec.rend(), 3);
//Inserting
vec.insert(ritr, 9); // vec: {1,2,3,9,4,5}
// or
vec.insert(ritr.base(), 9); // vec: {1,2,3,9,4,5}
vec = {1,2,3,4,5};
ritr = find(vec.rbegin(), vec.rend(), 3);
// 删除,结果不同
vec.erase(ritr); // vec: {1,2,4,5}
// or
vec.erase(ritr.base()); // vec: {1,2,3,5}
标签:两种 ras 不同 reverse iterator class 方法 产生 nts
原文地址:https://www.cnblogs.com/logchen/p/10204065.html