无法 push_back 到矢量

Unable to push_back to vector

我已经创建了一个 class 的实例,但是我无法 push_back 将船的名称添加到向量中。

if (rows->_rows.size() != rows->rows_Size) 
{
  rows->_rows.push_back (ship->name); }

我收到以下错误。

错误 1 ​​error C2664: 'void std::vector<_Ty>::push_back(Berths &&)' : 无法将参数 1 从 'std::string' 转换为 'Berths &&'

6 IntelliSense:没有重载函数的实例 "std::vector<_Ty, _Alloc>::push_back [with _Ty=Berths, _Alloc=std::allocator]" 与参数列表匹配 参数类型是:(std::string) 对象类型是:std::vector>

我要添加数据的 class 的代码是:

#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;
}

关于造成这种情况的原因有什么想法吗?

谢谢

.size()是向量的成员函数。因此,您应该改用 rows->_rows.size()。这是我们都会犯的一个常见错误。