0

快速介绍当我定义一个名为“token”的简单类时遇到一个问题,它由两个 int 值组成,我从这个类中创建了一个向量。我无法使用“push_back”。编译器告诉我我的“没有命名类型”

代码示例 //我的类定义示例

class token{
public:
int hi;
int hello;

token(int hi, int hello)
:hi(hi), hello(hello){}
};

//这是我调用和使用类的方式

vector<token> tok;
tok.push_back(1,1);

*免责声明*首先,我是一个完全的菜鸟。我花了很多时间谷歌搜索/阅读/等试图找到答案。大多数时候我无法完全理解我在读什么,所以因为我相信我的问题可能很简单,所以我希望有人能够帮助我。

我正在使用命名空间标准,请不要告诉我这是不好的做法。哈哈,我只是在学习如何编码,它让我的生活变得简单多了。我正在调用正确的库。但我正在使用 SFML。

请帮助所以你能取悦我吗?我完全迷路了。请相信我,我浪费了一天的大部分时间阅读和阅读不同的论坛。谢谢:)请保持简单

4

1 回答 1

7

push_back 需要对令牌对象的引用

tok.push_back( token(1,1) );

其中 emplace_back 直接在向量中构造

tok.emplace_back( 1, 1 );

我相信你想要它,emplace_back因为它更有效。

于 2013-04-29T20:37:51.063 回答