我需要使用迭代器从这个3d矩阵中打印字符串。
这是声明
vector <string> transicoes[estados.size()][alfabeto.size()];
我试着像这样打印
printf("%s", transicoes[i][j][k]);
但我收到此错误消息:
cannot pass objects of non-trivially-copyable type
我该怎么做?
编辑:改为cout,它现在有效,谢谢
答案 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;