MST

星途 面试题库

面试题:C++中STL容器迭代器begin的常量迭代特性基础应用

请解释在C++ STL中,当使用`const std::vector<int> vec;`定义一个常量向量后,`vec.begin()`返回的迭代器类型是什么,有什么特点?并编写一段代码,使用这个迭代器遍历该常量向量并输出元素。
47.8万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
  1. vec.begin()返回的迭代器类型
    • vecconst std::vector<int>类型时,vec.begin()返回的迭代器类型是std::vector<int>::const_iterator
  2. 特点
    • std::vector<int>::const_iterator类型的迭代器只能读取vector中的元素,不能修改元素的值。这是因为vec是常量对象,不允许对其内容进行修改。
  3. 代码示例
#include <iostream>
#include <vector>

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

在上述代码中,使用const_iterator类型的迭代器it遍历常量vector vec,并输出其中的元素。注意不能通过it修改vec中的元素,例如*it = 10;这样的操作是不允许的,会导致编译错误。