C ++中的3 x 3 char向量[关闭]
Posted
技术标签:
【中文标题】C ++中的3 x 3 char向量[关闭]【英文标题】:3 x 3 char vector in C++ [closed] 【发布时间】:2021-09-06 14:12:32 【问题描述】:我开始学习 C++ 我尝试声明一个 3x3 向量并执行以下操作:
std::vector<std::vector<char>> matrix(3, std::vector<int>(3));
这给了我一个错误,尽管当类型为 int 时它工作正常:
std::vector<std::vector<int>> matrix(3, std::vector<int>(3));
如果有人来解释我做错了什么以及如何在 C++ 中声明一个 3x3 向量,我将不胜感激。我知道如何使用矩阵来做到这一点。
我有谷歌,但我无法找到解决方案。如果有人推荐一本好书或在线课程来为刚接触 C++ 的人推荐一本好书或在线课程,我将不胜感激。
提前谢谢你,对不起我的英语。
【问题讨论】:
您的向量类型有误 -std::vector<std::vector<char>> matrix(3, std::vector<int>(3);
应该是 std::vector<std::vector<char>> matrix(3, std::vector<char>(3));
为了让@Yksisarvinen 的评论更清楚一点,你有一个std::vector<char>
的向量,然后你使用std::vector<int>(3)
对其进行初始化。
那就给我一个错误... 虽然在这种情况下不难看出问题所在,但一般来说,如果您询问的是产生错误的代码,告诉我们您看到了什么错误。最好粘贴错误的确切文本。
请不要接受解决错误问题的答案。 或者不要更新您的问题以响应答案(或 cmets 中的解决方案)。这使得答案和 cmets 以及您的整个问题都毫无用处。
【参考方案1】:
对我来说,'char' 矩阵和 'int' 矩阵之间没有任何区别。
问题是你忘记了行尾的括号。应该是:
std::vector<std::vector<int>> matrix(3, std::vector<int>(3));
或
std::vector<std::vector<char>> matrix(3, std::vector<char>(3));
关键是您应该使用编译器来更轻松地检测到此错误。 例如在 Visual Studio 中我得到:
错误 C2059:语法错误:';'
【讨论】:
这不是唯一的错误,更可能是写问题时的拼写错误(如编辑所示) @Lambert Duran,谢谢,这解决了我的问题。我认为 std::vector以上是关于C ++中的3 x 3 char向量[关闭]的主要内容,如果未能解决你的问题,请参考以下文章