1. 在C98中,不同的容器和数组,遍历的方法不尽相同,写法不统一,也不够简洁,而C++11基于范围的 for循环以统一、简洁的方式来遍历容器和数组,用起来更方便了。
C++ 容器都有哪些 简单介绍:
//STL C++标准库
#include<vector> //动态数组 seqlist
#include<array> //静态数组 容量不能扩大
#include<list> //双循环链表
#include<map> //关联式容器
#include<unordered_map> //hash_table
#include<set> //rbtree
#include<unordered_set> //hash_table
以下是基于范围的 for 循环的一股格式:
ElemType: 是范围变量的数据类型。它必须与数组(容器)元素的数据类型一样,或者是数组元素可以自动转换过来的类型。
val:是范围变量的名称。该变量将在循环迭代期间依次接收数组中的元素值。在第一次循环迭代期间,它接收的是第一个元素的值;在第二次循环迭代期间,它接收的是第二个元素的值;以此类推
array: 是要让该循环进行处理的数组 (容器)的名称。该循环将对数组中的每个元素迭代一次statement: 是在每次循环迭代期间要执行的语句。要在循环中执行更多的语句,则可以使用一组大括号来包围多个语句。与其他循环体一样,可以用continue来结束本次循环,也可以用break来跳出整个循环。
2.在C++中遍历一个数组 (容器) 的方法 般是这样的
int main()
{
int ar[] = { 1,2,3,4,5,6,7,8,9,10 };
int n = sizeof(ar) / sizeof(ar[0]);
for (int i = 0; i < n; ++i)
{
cout << ar[i] << " ";
}
cout << endl;
//范围for
for (int x : ar) //容器
{
cout << x << " ";
}
cout << endl;
}
int main()
{
int ar[] = { 1,2,3,4,5,6,7,8,9,10 };
for (auto &x : ar) //通过引用获取能够改变数组的值
{
cout <<(x+=100) << " ";
}
cout << endl;
for (auto x : ar) //没有对容器的值进行修改
{
cout << x << " ";
}
cout << endl;
}
在C++11基于范围的for循环
3.基于范围的for一般与auto结合
可以用auto 自动推导出val的数据类型:
A B C哪个正确?
ar是数组 p是指针 p应该是容器 br是引用10个元素数组,每个元素是整型,br是ar的别名 可以担当容器
ar代表整个数组
ar代表首元素的地址 int*
B√
下面是指针部分内容
s+1 加4个字节 p+1加16个字节 p与*p数值上
p代表指向数组的地址 *p代表指向数组首元素的地址,在数值上相同 意义不同 p+1加16个
如何通过p指针对ar2[2]赋值为100::
打印x,打印的值是什么:
文章来源:https://www.toymoban.com/news/detail-470317.html
文章来源地址https://www.toymoban.com/news/detail-470317.html
到了这里,关于C++ 范围for循环的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!