C++20 引入了 ranges 库,使得遍历变得更加简单和直观。使用 ranges 可以轻松地遍历一个序列并包含索引:

#include <iostream>
#include <vector>
#include <ranges>

int main() {
    std::vector<int> v{1, 2, 3, 4, 5};

    // 使用 enumerate 包含索引遍历
    for (auto [i, value] : std::ranges::views::enumerate(v)) {
        std::cout << "v[" << i << "] = " << value << std::endl;
    }

    return 0;
}

输出:

v[0] = 1
v[1] = 2
v[2] = 3
v[3] = 4
v[4] = 5

使用 std::ranges::views::enumerate 可以创建一个包含索引的视图,然后使用范围 for 循环遍历即可。其中,auto [i, value] 是一个结构化绑定,可以直接获取当前遍历到的元素和索引。

c++20 遍历,包含索引,用 ranges

原文地址: https://www.cveoy.top/t/topic/sSl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录