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(3) 将是向量的第二维。要学的东西太多了。

以上是关于C ++中的3 x 3 char向量[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用std C ++在每个x位置插入一个项目? [关闭]

计算所有组合减去向量的所有值[重复]

在C ++中将用空格分隔的字符串读入向量[关闭]

R语言编程艺术# 数据类型向量(vector)

将向量的每个元素与 R 中的另一个向量组合

按频率和进入顺序重新排序向量