gpt4 book ai didi

c++ - 在循环中使用自动 C++

转载 作者:IT老高 更新时间:2023-10-28 12:35:29 24 4
gpt4 key购买 nike

我收到以下代码有符号/无符号不匹配的警告:

auto n = a.size();
for (auto i = 0; i < n; i++) {
}

问题在于,通过将 0 分配给 i,它变成了 int 而不是 size_t。那么有什么更好的:

size_t n = a.size();
for (size_t i = 0; i < n; i++) {
}

或者这个:

auto n = a.size();
for (size_t i = 0; i < n; i++) {
}

或者你有更好的解决方案?我更喜欢第一个,因为它更加一致,它只使用 size_t 而不是 size_tauto出于同样的目的。

最佳答案

基于范围的循环可能是更简洁的解决方案:

for (const auto& i : a)
{

}

这里,iconst 对容器 a 元素的引用。

否则,如果需要索引,或者不想循环遍历整个范围,可以使用decltype(a.size())获取类型。

for (decltype(a.size()) i = 0; i < a.size(); ++i) {
}

关于c++ - 在循环中使用自动 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17505164/

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