0

簡単な紹介2 つの int 値で構成される「token」という単純なクラスを定義し、このクラスからベクトルを作成すると問題が発生します。「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);

*免責事項*最初に、私は完全な初心者です。私は答えを見つけようとして、グーグル/読書/などに何時間も費やしました。ほとんどの場合、読んでいるものを完全に理解することができませんでした。そのため、私の問題はおそらく非常に単純であると考えているため、誰かが私を助けてくれることを望んでいました.

名前空間 std を使用していますが、これが悪い習慣だとは言わないでください。笑 私はちょうどコーディングの仕方を学んでいて、それは私の人生をとてもシンプルにしています。正しいライブラリを呼び出しています。しかし、私はSFMLを使用しています。

助けてください。私を喜ばせてください。私は完全に迷っています。信じてください、私は 1 日のかなりの部分をさまざまなフォーラムを読んだり読んだりして無駄にしてきたと思います。ありがとう:)シンプルにしてください

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 に答える