Сообщение об ошибке вектора и как вставить объект в вектор в C ++? - PullRequest
0 голосов
/ 23 января 2011

У меня есть класс 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 ]

4 голосов
/ 23 января 2011

Возможно что-то вроде:

std::vector<Room> rooms;
room.push_back(Room("aaa", 1, 2, "ccc"));
2 голосов
/ 23 января 2011

Вы не можете использовать функцию push_back, как вы, просто потому, что функция push_back не заменяет конструктор. Вот решение:

vector<Room> rooms;
Room ins("aaa",1,2,"ccc");
rooms.push_back(ins);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...