C ++ 2D阵列查询

时间:2014-02-04 09:51:56

标签: c++ multidimensional-array

我是C ++的新手,但之前有过java等语言的经验,我开始制作一个简单的命令行Xs和Os游戏。在创建网格时,我发现我可以通过两种不同的方式启动它:

int grid[3][3] = {{0, 0, 0 },
                  {0, 0, 0 },
                  {0, 0, 0 }};

int grid[3][3];
for (int x = 0; x < 3; ++x)
{
    for (int y = 0; y < 3; ++y)
    {
        grid[x][y] = 0;
    }
}

一种方法是否比任何方式都更好,我是否应该习惯使用一种而不是另一种?

由于

2 个答案:

答案 0 :(得分:2)

在c ++中你可以写

int grid[3][3] = {};

这就足够了,例如how does array[100] = {0} set the entire array to 0?http://www.cplusplus.com/doc/tutorial/arrays/

答案 1 :(得分:0)

我喜欢使用memset。它使代码更好。您建议的方式都有效,但更多是C方言。更面向对象的方法可能是使用带有构造函数的matrix类。当然,在现实世界中,你可能会使用类似Boost的东西作为一般解决方案。