在 C++ 中,auto
是一个关键字,用于在声明变量时自动推导变量的类型。auto
是 C++11 标准引入的特性,允许编译器根据初始化表达式自动推导变量的类型。这样可以避免在某些情况下手动指定复杂类型,让代码更简洁和易读。
例如:
auto x = 42; // x 的类型被自动推导为 int
auto y = 3.14; // y 的类型被自动推导为 double
auto z = "hello"; // z 的类型被自动推导为 const char*
还有一种使用场景是遍历容器(如 std::vector
、std::map
等):
std::vector<int> numbers = {1, 2, 3, 4, 5};
for (auto it = numbers.begin(); it != numbers.end(); ++it) {
std::cout << *it << std::endl;
}
在这个例子中,it
的类型被自动推导为 std::vector<int>::iterator,
是一个指向 int
类型元素的迭代器,用于遍历 std::vector<int>
容器中的元素。使用 auto
关键字可以避免显式地写出这个较长的类型名。
迭代器可以类比为指针,它们提供了访问和修改容器中元素的方法。.begin()
方法返回容器中第一个元素的迭代器,.end()
方法返回容器中最后一个元素之后的迭代器。通过递增迭代器 ++it
,我们可以遍历容器中的所有元素。