0

だから私は文字列ベクトルを持っていますが、このベクトルを自分のカスタムクラスであるvaluestype のベクトルに変換したいと思います。Gameこれについてどうすればいいですか?

私はこのようなことを試みています:

void set_games(vector <string> values){ 
    vector <Game> tmp(values.begin(), values.end()); 
    games = tmp;
}

しかし、それは機能していません。助言がありますか?

現在のエラー メッセージ:

no matching function for call to ‘Game::Game(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)’
./classes/game.h:12: note: candidates are: Game::Game()
./classes/game.h:9: note: Game::Game(const Game&)

アップデート:

Gameコンストラクタ パラメータを追加しました。すべてが期待どおりに機能しています。

4

1 に答える 1

4

まあ、エラーメッセージはそれをすべて言います。単一の文字列引数を取る Game のコンストラクターが必要です。

class Game
{
public:
    Game(const std::string& s) { ... }
    ...

それが完了したら、tmp変数を捨てることでコードの効率を向上させることができます

games.assign(values.begin(), values.end());

あるいは、設計の観点から別のコンストラクターが賢明でない場合はstd::transform、Oli が提案したように。

于 2013-09-13T22:21:46.370 に答える