将字符串向量转换为自定义对象向量

时间:2013-09-13 22:14:34

标签: c++ vector

所以我有一个字符串向量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构造函数参数。一切都按预期工作。

1 个答案:

答案 0 :(得分:4)

错误消息说明了一切。你需要一个Game的构造函数,它接受一个字符串参数。

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

完成后,您可以通过放弃tmp变量来提高代码效率

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

或者,如果另一个构造函数从设计的角度来看是不明智的,那么就像Oli建议的那样std::transform