iterator是怎么判断链表结尾的?
当用iterator对list进行
逆序 遍历的时候,list插入值的方式不同,list.end()的值方式不同,我想知道end()是怎么实现的?
逆序遍历如下:(ps:我知道it = l.end()越界了)
list<int>::iterator it;
for (it = l.end(); it != l.begin(); --it)
{
cout << *it << "\t";
}
当插入值的代码是:
for (int i = 0; i < 10; i++) {
l.push_back(i);
}
时,输出是10 9 8 7 6 5 4 3 2 1 也就是在链表末尾多插入了10
当是一个一个插入值的时候如: l.push_back(30); l.push_back(28); l.push_back(20); 输出的值是30 20 28 也就是将将首个元素作为末尾值了。 那end()到底是怎么实现的?