c++ - 为什么 for 循环不能定义两个范围的变量?

标签 c++ for-loop scope

<分区>

我对“'iter' 未在此范围内声明”错误感到困惑。

#include <vector>

using std::vector;

int main()
{
    vector<int> vec{1,2,3,4,5,6};
    for(std::size_t i,vector<int>::iterator iter=vec.begin();iter!=vec.end();++i,++iter)
    {
        //do something
    }
}

最佳答案

只要你能做到

int a = 10, b = 20;

for 循环的第一部分做同样的事情。既然你做不到

int a = 10, double b = 20;

同样的事情也适用于 for 循环。

从技术上讲,您可以拥有两种不同的类型,因为您可以在同一行中声明一个类型和一个指向相同类型的指针,例如

int i = 0, *b = nullptr;

这在 for 循环中也是有效的。

关于c++ - 为什么 for 循环不能定义两个范围的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49301540/

相关文章:

ruby - 本地范围到底是什么?

c++ - 不同的功能取决于模板类中的类型

c++ - OpenCV Mat 数据结构

r - R中的for循环回归分析

c - 套接字和数据持久性

python - 如何在没有 self 的情况下访问类范围变量?

c++ - 在 Boost 中使用持续时间合并仅时间

c++ - 无锁原子循环队列无法正常工作

bash - 遍历 Bash 数组 : getting the next element in the middle of the loop

r - 循环数据框并考虑值的类型