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++中遍历一个数组 (容器) 的方法 般是这样的
在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,打印的值是什么: