一行中的两个for循环c ++

Elo*_*kas 0 c++ arrays iteration for-loop vector

我的问题是关于一行代码中的两个for循环。例如:

vector < vector<int> > myArray;

for (int i; i > n; i++) for (int j; j > m; j++)
{
//Statements
myArray[i][j];
}
Run Code Online (Sandbox Code Playgroud)

显然,它确实用于二维数组或矢量,但是它们将用于哪些实际示例?由于很难在单独的行中显示行和列。同样,两个for循环条件将在同一时间更改,因为它们在同一行上,这将更难控制整个过程。

不久,这的实际目的是什么?

roe*_*ofs 5

简短的答案:使代码更难阅读的实际目的通常是无(for一行上肯定有两个循环)。无论使用以下哪种方法,它都不会对编译器的输出产生任何功能差异:

for (int i; i > n; i++) for (int j; j > m; j++)
{
    //Statements
    myArray[i][j];
}
Run Code Online (Sandbox Code Playgroud)

要么

for (int i; i > n; i++) 
{
    for (int j; j > m; j++)
    {
        //Statements
        myArray[i][j];
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,除了混淆竞赛之外,以难以阅读的方式编写代码对可维护性,可读性和可调试性不利。上面的第二个选项更容易快速阅读和理解,更容易调试。

有很多样式指南涵盖了这一点,给出了“好”代码的示例,以及以某种方式编写代码的理由。

看一下这个问题的一些链接:C语言的编程风格指南