首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打印2d数组,C++

打印2d数组,C++
EN

Stack Overflow用户
提问于 2015-05-21 03:59:37
回答 2查看 2.2K关注 0票数 0

我来自Matlab,在那里我可以右键点击一个2D矩阵,看到一个像excel一样的可视化里面是什么。现在,我正在C++ ( visualization )中工作,并且正在寻找类似于2d数组的东西,例如可视化,例如:

代码语言:javascript
复制
myArray = [ 1 2 3
            4 5 6
            7 8 9 ]

在C++中做这样的事情最好的方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-21 04:10:12

首先,对于C++中数组的声明/初始化,这是不正确的语法。我不知道是否有任何IDE可以为您可视化一个数组,但是您可以用这样的两个for循环来实现它。这也显示了数组的正确语法。

代码语言:javascript
复制
#include <iostream>

using namespace std;

int main(int argc, char **argv)
{
  int myArray[3][3] = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
  };

  for (int i=0; i<3; ++i) {
    for (int j=0; j<3; ++j)
      cout << myArray[i][j] << ' ';
    cout << endl;
  }

  return 0;
}

或者,如果您想方便调试,可以定义如下的预处理器指令

代码语言:javascript
复制
#include <iostream>
#include <iomanip>

using namespace std;

#define test_array(name,ni,nj,w)      \
  cout << #name " = {\n";             \
  for (int i=0; i<ni; ++i) {          \
    cout << "  ";                     \
    for (int j=0; j<nj; ++j)          \
      cout << setw(w+1) << myArray[i][j]; \
    cout << endl;                     \
  }                                   \
  cout << '}' << endl;

int main(int argc, char **argv)
{
  int myArray[3][3] = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
  };

  test_array(myArray,3,3,2)

  return 0;
}

第四个参数将允许您设置列的宽度,这样您就可以很好地对齐。

票数 2
EN

Stack Overflow用户

发布于 2015-05-21 04:09:33

如果您将输出引用到控制台,那么只需编写一个接收数组及其大小的函数,然后使用cout将该信息打印到控制台。

但是,如果您使用它进行调试,则还有另一种数据可视化选项:当变量碰到在程序中设置的断点时对其进行处理。这里有几个注意事项:如果我正确地回忆起来,如果您已经动态地分配了数组,visualization将不会自动显示mouseover可视化中的所有元素,因为IDE不知道正确显示数组的大小。如果您使用静态大小的数组或任何STL容器类(其中一个是vector),建议使用它来代替动态分配的数组,那么这个问题就会得到解决,因为它们可以自我管理内存,并提供一些有用的函数来操作它们包含的数据集。

随着您深入到C++中,您可能会创建自己的类来保存矩阵,或者下载一个实现了该类的库。如果您想以最终喜欢的方式查看包含的信息,您还可以使用visualization的一种方法来自定义数据的可视化。我喜欢纳特维斯,因为它学习起来很简单,而且很快就能得到结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30364335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档