我创建了一个类的实例但是我无法将该船的名称推送到向量。
if (rows->_rows.size() != rows->rows_Size) { rows->_rows.push_back (ship->name); }
我收到以下错误。
错误1错误C2664:'void std :: vector< _Ty> :: push_back(Berths&&)':无法将参数1从'std :: string'转换为'Berths&&'
6智能感知:没有重载函数的实例“std :: vector< _Ty,_Alloc> :: push_back [with _Ty = Berths,_Alloc = std :: allocator]”匹配参数列表 参数类型是:(std :: string) 对象类型是:std :: vector>
我尝试添加数据的类的代码是:
#pragma once class Berths; #include "Berths.h" #include "Ship.h" #include <iostream> #include <vector> class Rows { public: Rows(void); ~Rows(void); std::vector<Berths> _rows; int rows_Size; bool dock(Ship ship); bool undock(Ship ship); };
Rows::Rows(void)
{
rows_Size = 10;
}
有关导致此问题的任何想法?
谢谢
答案 0 :(得分:2)
.size()
是向量的成员函数。因此,您应该使用rows->_rows.size()
代替。这是我们所犯的一个常见错误。