我目前正在尝试创建一个包含2D结构向量的类,但是我显然在做一些可悲的错误,因为每当我运行我的代码时,我在第19行(世界构造函数中for循环中的行)出现错误。 error: expected primary-expression before ‘)’ token
这是我目前的代码:
#include <iostream>
#include <vector>
struct Cell{
bool isAlive;
Cell(bool alive){
isAlive = alive;
}
};
class World{
unsigned width;
unsigned height;
std::vector<std::vector<Cell>> state;
public:
World(unsigned w,unsigned h){
width = w;
height = h;
for (int i = 0; i<h; i++){
state.push_back(std::vector<Cell>);
}
}
};
我知道我还没有完全初始化向量的第二维,但是我现在只是想让它开始工作。
非常感谢,老实说,我不知道此错误意味着什么。
您需要构造要尝试push_back的向量。
// Note the added parentheses after <Cell>
state.push_back(std::vector<Cell>())
在这种情况下,指的push_back
是一个值,或者是一个求值的“表达式”。您的expected primary expression before ')' token
错误或多或少意味着push_back期望值作为其参数,但已传递了其他内容。在这种情况下,type 就是其他东西std::vector<Cell>
。构造向量(使用表达式创建值)将解决此问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句