字符串数组的数组

时间:2014-01-16 23:59:58

标签: c++ arrays string

我正在完成一项任务,我需要在图表上找到最短路径 算法没有任何问题。问题是如何从源输出到所有其他顶点的路径。边缘也有名字,不仅有重量。我该如何正确初始化字符串矩阵?有可能吗?

我希望此代码有效:

printf(" -(%s)-> %d", names[prev][next], mas[j]);

mas[j]是具有顶点的数组 names - string

的数组数组

我试图以这种方式初始化矩阵:

 string  names[N][N] = {
         {'0', 'A', '0', 'B', 'E', '0', '0', 'P1', '0'},
         {'A', '0', 'D', 'I', '0', '0', '0', '0', '0'},
         {'0', 'D', '0', '0', '0', 'H', 'F', '0', '0'},
         {'B', 'I', '0', '0', '0', 'H', '0', '0', '0'},
         {'E', '0', '0', '0', '0', '0', '0', 'P2', '0'},
         {'0', '0', 'H', 'H', '0', '0', '0', '0', 'P4'},
          {'0', '0', 'F', '0', '0', '0', '0', '0', 'P3'},
         {'0', '0', '0', '0', '0', '0', '0', '0', '0'},
          {'0', '0', '0', '0', '0', '0', '0', '0', '0'},
 };

我的程序:http://ideone.com/ZMiVPE

1 个答案:

答案 0 :(得分:1)

您对字符串文字使用了错误的引号。单引号'用于字符文字,实际上'P1'是一个多字符文字(我确定你甚至不想搞砸)。相反,请在文字周围使用双引号"

他们都需要成为字符串文字的原因是因为没有std::string构造函数只需要char。但是,有一个构造函数采用C风格的字符串(由字符串文字创建)。

请注意,printf需要一个C风格的字符串,因此您需要执行names[prev][next].c_str()