向量错误消息以及如何在C ++中将对象插入向量?

时间:2011-01-23 17:30:34

标签: c++ vector

我有一个Room类,它有这个构造函数:

Room::Room(string a, int b, int c, string d)

在我的主要功能中,我做了:

vector<Room> room;
sale.push_back("aaa", 1, 2, "ccc");

它给了我这个错误:

error: no matching function for call to ‘std::vector<Room, std::allocator<Room> >::push_back(const char [4])’

note: candidates are: void std::vector<_Tp, _Alloc>::push_back(const _Tp&) [with _Tp = Room, _Alloc = std::allocator<Room>]

我不明白这个错误。如何在矢量中添加新的房间对象?

2 个答案:

答案 0 :(得分:4)

可能类似于:

std::vector<Room> rooms;
room.push_back(Room("aaa", 1, 2, "ccc"));

答案 1 :(得分:2)

您不能像以前那样使用push_back函数,因为push_back函数不会替换构造函数。这是解决方案:

vector<Room> rooms;
Room ins("aaa",1,2,"ccc");
rooms.push_back(ins);