1--用法
1-1--for(auto A:B)
利用 A 遍历并获取 B 容器中的每一个值,但不会影响容器 B 的内容;
#include <iostream>
int main(int argc, char* argv[]){
// 给 A 数组赋值
int B[10];
for(int i = 0; i < 10; i++){
B[i] = i;
}
std::cout << "A: " << std::endl;
for(auto A:B){
A = A + 10;
std::cout << " " << A;
}
std::cout << std::endl << "B: " << std::endl;
for(int i = 0; i < 10; i++){
std::cout << " " << B[i];
}
return 0;
}
1-2--for(auto& A:B)
利用 A 遍历并获取 B 容器中的每一个值,同时使用了引用,所以修改 A 会影响容器 B 的内容;
#include <iostream>
int main(int argc, char* argv[]){
// 给 A 数组赋值
int B[10];
for(int i = 0; i < 10; i++){
B[i] = i;
}
std::cout << "A: " << std::endl;
for(auto& A:B){
A = A + 10;
std::cout << " " << A;
}
std::cout << std::endl << "B: " << std::endl;
for(int i = 0; i < 10; i++){
std::cout << " " << B[i];
}
return 0;
}
1-3--for(const auto& A:B)
利用 A 遍历并获取 B 容器中的每一个值,通过 const 确保 A 不会被修改;
#include <iostream>
int main(int argc, char* argv[]){
// 给 A 数组赋值
int B[10];
for(int i = 0; i < 10; i++){
B[i] = i;
}
std::cout << "A: " << std::endl;
for(const auto& A:B){
// A = A + 10; // 使用 const 确保 A 不会被修改
std::cout << " " << A;
}
std::cout << std::endl << "B: " << std::endl;
for(int i = 0; i < 10; i++){
std::cout << " " << B[i];
}
return 0;
}