gpt4 book ai didi

c++ - 向后迭代 std::array 或 std::vector 的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-01 18:30:24 26 4
gpt4 key购买 nike

所以我这样做的基本想法是这种循环:

std::array<int,10> t{};
for (int k = t.size()-1; k >= 0; k--)
cout << t[k] << " ";

问题是 .size() 方法返回一个 std::array::size_type,根据我的阅读,它可能大于 int。

问题是 size_type 是无符号的,所以当我这样做时:

for (auto k = t.size()-1; k >= 0; k--)
cout << t[k] << " ";

它只是无限循环,因为 k 不能为负数。那么如何使用 size_type 变量迭代 std::array 或 std::vector backwars ?

最佳答案

如果由于某种原因迭代器不起作用,并且出于某种原因您必须使用索引:

for (auto k = t.size(); k > 0; )
{
--k;

// The rest of your loop
}

关于c++ - 向后迭代 std::array 或 std::vector 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59511795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com