所以我有一个字符串向量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
构造函数参数。一切都按预期工作。
答案 0 :(得分:4)
错误消息说明了一切。你需要一个Game的构造函数,它接受一个字符串参数。
class Game
{
public:
Game(const std::string& s) { ... }
...
完成后,您可以通过放弃tmp
变量来提高代码效率
games.assign(values.begin(), values.end());
或者,如果另一个构造函数从设计的角度来看是不明智的,那么就像Oli建议的那样std::transform
。