字符串数组的数组

Array of array of string

本文关键字:数组 字符串      更新时间:2023-10-16

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

我希望这段代码工作:

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

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

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

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