无法push_back到向量

时间:2015-04-06 01:01:14

标签: c++ vector stl

我创建了一个类的实例但是我无法将该船的名称推送到向量。

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

有关导致此问题的任何想法?

谢谢

1 个答案:

答案 0 :(得分:2)

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