如何用for循环实现循环结构?
- 内容介绍
- 文章标签
- 相关推荐
本文共计790个文字,预计阅读时间需要4分钟。
常见现象是循环变量越界、迭代器失效或被重复调用导致性能波动。最稳定的写法不依赖数数,而是依赖类型和语义匹配。
- 用
size_t或容器自己的size_type声明索引,避免和负数比较(比如int i = vec.size(); i >= 0; i--会死循环) - 遍历
std::vector优先用范围for:for (const auto& x : vec),既安全又清晰 - 真要下标访问,写成
for (size_t i = 0; i ,别用 <code> —— <code>size()返回无符号数,减 1 会绕回极大值
为什么 for (auto i : container) 有时改不了原值?
因为默认是值拷贝。你看到的是副本,改它不影响容器里的元素。
本文共计790个文字,预计阅读时间需要4分钟。
常见现象是循环变量越界、迭代器失效或被重复调用导致性能波动。最稳定的写法不依赖数数,而是依赖类型和语义匹配。
- 用
size_t或容器自己的size_type声明索引,避免和负数比较(比如int i = vec.size(); i >= 0; i--会死循环) - 遍历
std::vector优先用范围for:for (const auto& x : vec),既安全又清晰 - 真要下标访问,写成
for (size_t i = 0; i ,别用 <code> —— <code>size()返回无符号数,减 1 会绕回极大值
为什么 for (auto i : container) 有时改不了原值?
因为默认是值拷贝。你看到的是副本,改它不影响容器里的元素。

