在C ++中打印vector <string> m [] []

时间:2017-06-04 20:38:55

标签: c++

我需要使用迭代器从这个3d矩阵中打印字符串。

这是声明

vector <string> transicoes[estados.size()][alfabeto.size()];

我试着像这样打印

printf("%s", transicoes[i][j][k]);

但我收到此错误消息:

cannot pass objects of non-trivially-copyable type

我该怎么做?

编辑:改为cout,它现在有效,谢谢

1 个答案:

答案 0 :(得分:3)

问题是C函数与C ++结构不兼容。试着这样做:

printf("%s", transicoes[i][j][k].c_str());

c_str()调用将const char*返回给以null结尾的字符数组,其数据与存储在字符串中的数据相同,这是一个类似C的字符串。

但是如果你正在使用C ++,你应该使用流操作符<<>>。然后代码会像这样循环:

std::cout << transicoes[i][j][k] << endl;