迭代是否遍历整个列表

Does iteration go through the whole list

取此代码:

std::list<int> intList;
for (int i = 0; i < 10; ++i) {
    intList.push_back( 1 << i );
}

std::list<int>::const_iterator iterator;
for (iterator = intList.begin(); iterator != intList.end(); ++iterator) {
    std::cout << *iterator;
}

我了解了如何遍历列表。查看迭代,我认为您跳过了最后一项。是否是这种情况,如果是,最好的解决方法是什么。

实际上,最后一项并没有被跳过。指向 intList.end()-1 的迭代器指向最后一项,而不是您可能想的 intList.end()