总第29篇
接上篇,本文继续对C++新特性中的对语言可用性的增强进行归纳介绍。
1.区间迭代的简化
区间迭代是指基于范围的for
循环。在C++11中,引入了基于范围的迭代写法,能够写出像python
一样简单的循语句:
int array[] = {1,2,3,4,5};
for(auto &x : array)
{
std::cout << x << std::endl;
}
最常用的迭代器遍历std::vector
,以前的写法是这样的:
std::vector<int> arr(5, 100);
for(std::vector<int>::iterator i = arr.begin(); i != arr.end(); ++i)
{
std::cout << *i << std::endl;
}
在C++11中可以变得非常简单:
std::vector<int> arr(5, 100);
// & 启用了引用, 如果没有则对 arr 中的元素只能读取不能修改
for(auto &i : arr)
{
std::cout << i << std::endl;