0

所以我有一个字符串向量values,但我想将此向量转换为类型的向量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 回答