MST

星途 面试题库

面试题:C++ STL 迭代器end边界判断基础应用

假设有一个`std::vector<int> vec = {1, 2, 3, 4, 5};`,请编写一段代码,使用迭代器遍历该向量,在到达`end()`迭代器之前打印每个元素,并解释为什么`end()`迭代器的位置在边界判断中的作用。
41.7万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};
    for (auto it = vec.begin(); it != vec.end(); ++it) {
        std::cout << *it << std::endl;
    }
    return 0;
}

end()迭代器指向向量中最后一个元素的下一个位置。在边界判断中,使用it != vec.end()来确保迭代器在遍历过程中不会越界。当迭代器it到达vec.end()时,表示已经遍历完所有元素。如果不进行这样的边界判断,在访问超出向量范围的位置时,会导致未定义行为,例如访问非法内存地址,程序可能崩溃。