- 当使用 for 循环遍历某个序列时,无论该序列是普通数组、容器还是用
{ }
大括号包裹的初始化列表,遍历序列的变量都表示的是当前序列中的各个元素。
- 并不是迭代器。
- 基于范围的 for 循环可以遍历普通数组、string字符串、容器以及初始化列表。除此之外,for 循环冒号后还可以放置返回 string 字符串以及容器对象的函数。
- 但是不能遍历用指针表示的数组。
- 当基于范围的 for 循环遍历的是某函数返回的 string 对象或者容器时,整个遍历过程中,函数只会执行一次。
//遍历函数返回的 string 字符串
for (char ch : retStr()) { //retStr()只执行一次
cout << ch;
}
- 基于关联式容器(包括哈希容器)底层存储机制的限制:
- 不允许修改 map、unordered_map、multimap 以及 unordered_multimap 容器存储的键的值;
- 不允许修改 set、unordered_set、multiset 以及 unordered_multiset 容器中存储的元素的值。