无法 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()
。这是我们都会犯的一个常见错误。
我已经创建了一个 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()
。这是我们都会犯的一个常见错误。