小编SKI*_*KIP的帖子

C++反向'for'循环

我有一个向量:

std::vector<int> vec = {1, 2, 3};
Run Code Online (Sandbox Code Playgroud)

我想做一个反向for循环。它有效,当我写:

for(int i = vec.size() - 1; i >= 0; --i) {
    std::cout << i << std::endl; // 2, 1, 0
}
Run Code Online (Sandbox Code Playgroud)

但是如果我这样写,我会得到一个非常大的数字(比如 18446744073709223794):

for(size_t i = vec.size() - 1; i >= 0; --i) {
    std::cout << i << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

但是当我写的时候它们都有效:

for(int i = 0; i < vec.size() - 1; ++i) {
    std::cout << i << std::endl; // 1, 2, 3
}

// Or
for(size_t i = 0; i < …
Run Code Online (Sandbox Code Playgroud)

c++ unsigned for-loop

6
推荐指数
2
解决办法
401
查看次数

标签 统计

c++ ×1

for-loop ×1

unsigned ×1