reverse iterator
Problem 1:
vector<int> coll = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; vector<int>::const_iterator pos = find (coll.cbegin(), coll.cend(),5); cout << "pos: " << *pos << endl; vector<int>::const_reverse_iterator rpos(pos); cout << "rpos: " << *rpos << endl;
This program has the following output:
pos: 5
rpos: 4
Same position but its value is changed; this can use the pos in the diagram to illustrate it.
Problem 2:
deque<int> coll = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; deque<int>::const_iterator pos1; pos1 = find (coll.cbegin(), coll.cend(), 2); // value deque<int>::const_iterator pos2; pos2 = find (coll.cbegin(), coll.cend(), 7); // value for_each (pos1, pos2, print); // operation deque<int>::const_reverse_iterator rpos1(pos1); deque<int>::const_reverse_iterator rpos2(pos2); for_each (rpos2, rpos1, print); // operation
The program is as follows:
2 3 4 5 6
6 5 4 3 2
It seems the behavior of the problem 2 is not same with problem 1.
This can use the pos1, pos2 in the diagram to illustrate it.
posted on 2014-09-11 17:07 compilerTech 阅读(615) 评论(0) 编辑 收藏 举报