迭代是否遍历整个列表
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()
。
取此代码:
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()
。