我的代码中有这个
for (int i=max_position; i<N; ++i) { ... }
但是,在循环内部我要更新它的值max_position,这会影响我的for循环吗?
从n4296开始,这是C++ 14标准草案(尽管每个版本的C++和C都有相同的措辞).
该for语句
Run Code Online (Sandbox Code Playgroud)for ( for-init-statement condition(opt); expression(opt)) statement相当于
Run Code Online (Sandbox Code Playgroud){ for-init-statement while ( condition ) { statement expression ; } }除了在for-init-statement中声明的名称与条件中声明的名称在同一声明区域中,并且
continuein 语句(未包含在另一个迭代语句中)将在重新评估条件之前执行表达式.[注意:因此第一个语句指定循环的初始化; 条件(6.4)指定在每次迭代之前进行的测试,以便在条件变为假时退出循环; 表达式通常指定在每次迭代后执行的递增. - 结束说明]
如您所见,一旦初始化i,修改用于初始化它的表达式中使用的变量将不起作用.(这是标准实际上非常清楚的地方之一.)
| 归档时间: |
|
| 查看次数: |
123 次 |
| 最近记录: |