C++ Primer 学习笔记_43_STL实践与分析(17)(二)

2014-11-24 12:10:33 · 作者: · 浏览: 1
e.rbegin(),因为我们知道转换的结果必定是line.end()。只需调用所有反向迭代器类型都提供的成员函数base转换rcomma即可:

    cout << string(rcomma.base(),line.end()) << endl;

正如 line_rbegin()line.end()一样,rcommarcomma.base()也指向不同的元素。从技术上来说,设计普通迭代器与反向迭代器之间的关系是为了适应左闭合范围这个性质的,所以,[line.rbegin(),rcomma) 和[rcomma.base(),line.end()) 标记的是line中的相同元素。

使用普通的迭代器对反向迭代器进行初始化或赋值时,所得到的迭代器并不是指向原迭代器所指向的元素!!!