C++ 循环的标题与正文重复代码相同

C++ 循环的标题与正文重复代码相同,c++,for-loop,iterator,iteration,C++,For Loop,Iterator,Iteration,我正在尝试将二维表输出到文件,包括标题行和列。我宁愿不检查循环中是否是头文件,因为这会分散读者的注意力;但是我不想写两次内部for循环,因为我担心它可能会在维护过程中意外发散。两个循环都以double形式跨越一个范围,但我并行使用一个整数来避免循环结束时的舍入问题 下面是带有“标题行条件”的代码iI将单独编写标题循环。如果你这样做的话,阅读你的代码要容易得多,而且正因为如此,它实际上比试图将代码卷成一个更不容易出错。即使编译器没有循环展开,分支预测器也会有近乎完美的预测,所以这真的不重要。不过我

我正在尝试将二维表输出到文件,包括标题行和列。我宁愿不检查循环中是否是头文件,因为这会分散读者的注意力;但是我不想写两次内部for循环,因为我担心它可能会在维护过程中意外发散。两个循环都以double形式跨越一个范围,但我并行使用一个整数来避免循环结束时的舍入问题


下面是带有“标题行条件”的代码
iI将单独编写标题循环。如果你这样做的话,阅读你的代码要容易得多,而且正因为如此,它实际上比试图将代码卷成一个更不容易出错。即使编译器没有循环展开,分支预测器也会有近乎完美的预测,所以这真的不重要。不过我还是同意帕迪说的。
Xi = range.Xi.min();
for(int i = -1; i< 128; i++, Xi += range.Xi/128) {
    if(i<0)                                         
        File.write( format_blank, strlen(format_blank) );       // write top corner of table
    else                                    
        write( File, format_nth_csv, Xi );                      // write the 1st column

    dXi = range.dXi.min();
    for(int j=0; j < 64; j++, dXi += range.dXi/64) {
        if (i<0)                                
            write( File, format_1st_csv, dXi);                  // write the header row
        else                                            
            write( File, format_nth_csv, kernelDensity.evaluatedAt( Xi, dXi ) );// write the table contents
    }
}