c++ 基于范围的for循环
传统写法 for (表达式 1; 表达式 2; 表达式 3)
#include <iostream>
#include <vector>
using namespace std;int main()
{vector<int> t{ 1,2,3,4,5,6 };for (auto it = t.begin(); it != t.end(); ++it){cout << *it << " ";}cout << endl;return 0;
}
新特性 for (declaration : expression)
#include <iostream>
#include <vector>
using namespace std;int main(void)
{vector<int> t{ 1,2,3,4,5,6 };for (auto value : t){cout << value << " ";}cout << endl;return 0;
}
加引用&可以修改容器内容
#include <iostream>
#include <vector>
using namespace std;int main(void)
{vector<int> t{ 1,2,3,4,5,6 };for (auto& value : t){value++;}cout << endl << "遍历修改之后的容器: ";for (auto value : t){cout << value << " ";}cout << endl;return 0;
}
// 输出
// 遍历修改之后的容器: 2 3 4 5 6 7
for (const auto& value : t)。对容器的遍历过程中,如果只是读数据,不允许修改元素的值,可以使用 const 定义保存元素数据的变量,在定义的时候建议使用 const auto &,这样相对于 const auto 效率要更高一些。