📅  最后修改于: 2023-12-03 15:23:07.612000             🧑  作者: Mango
在 C++ 中有多种方法可以迭代集合,其中包括使用 for
循环、使用范围 for
循环、使用迭代器以及使用 STL 算法等。以下是具体介绍:
使用 for
循环是迭代集合最基本的方法,它可以用来遍历数组、vector
、deque
等容器,并可根据需要访问每个元素的下标或值。
int arr[] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; ++i) {
std::cout << arr[i] << std::endl;
}
使用范围 for
循环是 C++11 新增的语法特性,它可以方便地遍历容器或数组中所有元素,无需手动计算下标或使用迭代器。
std::vector<int> vec = {1, 2, 3, 4, 5};
for (int val : vec) {
std::cout << val << std::endl;
}
使用迭代器是一种通用的遍历容器或数组的方法,它支持前向迭代、双向迭代和随机访问迭代等多种访问方式。不同容器和数组的迭代器不一定相同,所以在使用时需要注意。
std::list<int> lst = {1, 2, 3, 4, 5};
for (std::list<int>::iterator it = lst.begin(); it != lst.end(); ++it) {
std::cout << *it << std::endl;
}
STL 算法是一组遍历集合的通用算法,它们可以遍历容器或数组中的所有元素,并根据需要进行转换、排序、查找、去重等操作。使用 STL 算法需要包含 algorithm
头文件,并根据需要调用相应的算法函数。
std::vector<int> vec = {5, 4, 3, 2, 1};
std::sort(vec.begin(), vec.end()); // 排序
for (int val : vec) {
std::cout << val << std::endl;
}
以上就是在 C++ 中迭代集合的不同方法,开发者可以根据实际需求选择合适的方式进行迭代。