26. iterator 优先于const_iterator, reverse_iterator, const_reverse_iterator
const_reverse_iterator -base()-> const iterator
reverse_iterator -base()-> iterator
insert erase 只接受 iterator
27. distance 和 advance 将容器的const_iterator 转换成 iterator
存在移植性问题
typedef deque<int> IntDeque;
typedef IntDeque::iterator Iter;
typedef IntDeque:const_iterator ConstIter;
InDeque d;
ConstIter ci;
Iter i(d.begin());
advance(i, distance<ConstIter>(i, ci));
28. 正确理解由reverse_iterator 的base() 成员函数产生的iterator的用法
vector<int> v;
v.reserve(5);
for(int i=1; i<=5; ++i)
{
v.push_back(i);
}
vector<int>::reverse_iterator ri = find(v.rbegin(), v.rend(), 3);
vector<int>::iterator i(ri.base());
29. 对于逐个字符的输入请考虑使用istreambuf_iterator
ifstream inputFile("interestingData.txt");
string fileData((istreambuf_iterator<char>(inputFile)),//外层括号代表不是函数声明
istreambuf_iterator<char>());