📜  在 C++ 中迭代集合的不同方法(1)

📅  最后修改于: 2023-12-03 15:23:07.612000             🧑  作者: Mango

在 C++ 中迭代集合的不同方法

在 C++ 中有多种方法可以迭代集合,其中包括使用 for 循环、使用范围 for 循环、使用迭代器以及使用 STL 算法等。以下是具体介绍:

使用 for 循环

使用 for 循环是迭代集合最基本的方法,它可以用来遍历数组、vectordeque 等容器,并可根据需要访问每个元素的下标或值。

int arr[] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; ++i) {
    std::cout << arr[i] << std::endl;
}
使用范围 for 循环

使用范围 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 算法是一组遍历集合的通用算法,它们可以遍历容器或数组中的所有元素,并根据需要进行转换、排序、查找、去重等操作。使用 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++ 中迭代集合的不同方法,开发者可以根据实际需求选择合适的方式进行迭代。