C++ foreach
最后修改于 2023 年 1 月 9 日
C++ foreach 教程展示了如何在 C++ 中遍历容器。
C++ 11 引入了基于范围的 for 循环。 for-range 循环可用于轻松遍历容器的元素,包括数组、向量、列表和映射。
C++ foreach 数组
数组是相同类型元素的固定大小的顺序集合。
foreach_array.cpp
#include <iostream> int main() { int vals[] {1, 2, 3, 4, 5}; for (auto val : vals) { std::cout << val << std::endl; } }
该示例打印数组中所有整数元素。
$ ./foreach_array 1 2 3 4 5
C++ foreach 向量
向量是动态数组。
foreach_vector.cpp
#include <iostream> #include <vector> int main() { std::vector<int> nums { 1, 2, 3, 4, 5, 6, 7 }; for (auto num: nums) { std::cout << num << std::endl; } }
我们遍历整数向量。
$ ./foreach_vector 1 2 3 4 5 6 7
C++ foreach 列表
列表是支持在容器的任何位置进行常数时间插入和删除元素的容器。它允许非连续的内存分配。
foreach_list.cpp
#include <iostream> #include <list> int main() { std::list<std::string> words = { "falcon", "sky", "cloud", "book" }; for (auto word: words) { std::cout << word << std::endl; } }
我们打印字符串列表中所有元素。
$ ./foreach_list falcon sky cloud book
C++ foreach 映射
映射是存储键/值对的容器。
foreach_map.cpp
#include <iostream> #include <map> int main() { std::map<std::string, int> items { {"coins", 3}, {"pens", 2}, {"keys", 1}, {"sheets", 12} }; for (auto item: items) { std::cout << item.first << ": " << item.second << std::endl; } }
我们有一个域名映射。使用 for-range 循环,我们遍历映射的键/值对。
$ ./foreach_map coins: 3 keys: 1 pens: 2 sheets: 12
在本文中,我们已经使用 C++ 中的 for-range 循环。