2D向量说,类没有名为push_back的成员
2d vector says class does not have member named push_back
ManageShips::ManageShips(vector< Spaceship <Item> > itemShip,
vector< Spaceship <Person> > personShip,
vector< Item > itemCargo,
vector< Person > personCargo){
m_itemShips = itemShip;
m_personShips = personShip;
m_items = itemCargo;
m_person = personCargo;
}
void ManageShips::LoadItemShip(){
int numberItemShips = m_itemShips.size();
int numberOfItems = m_items.size();
int itemCount = 0;
for (int i = 0 ; i < numberItemShips ; i++){
int shipFull = 0;
double shipWeight = 0;
while ( shipFull == 0){
while (itemCount < numberOfItems){
if ((m_items[itemCount].GetWeight() + shipWeight ) > m_itemShips[i].GetCapacity()){
shipFull = 1;
}
else {
m_itemShips[i].push_back(m_items[itemCount]);
shipWeight = m_items[itemCount].GetWeight() + shipWeight;
itemCount = itemCount + 1;
}
}
}
}
}
我有一个类型太空飞船的2D矢量,该载体保存类型的数据。我正在尝试将项目对象添加到第一个太空飞船中,但这给了我一个错误,说班级飞船项目没有名为push_back
的成员这是这条线,我看不到它怎么了。
m_itemShips[i].push_back(m_items[itemCount]);
帮助。
编辑:如果您要降低我的作用,请给我一个理由。我只是在问一个问题。
m_itemShips
是(大概是) std::vector< Spaceship <Item> >
, m_items
是 std::vector< Item >
。(而且您没有提供有关SpaceShip
或Item
是什么的信息)。
这意味着m_itemShips[i].push_back(m_items[itemCount])
需要SpaceShip<Item>
具有名为push_back()
的成员函数,该功能可以接受Item
。
如果SpaceShip<Item>
没有这样的push_back()
成员函数,可以解释您的错误消息。
重要的是,即使它具有std::vector<Item>
类型的数据成员,SpaceShip<Item>
也不会神奇地获取名为push_back()
的方法。如果您想要这样的成员函数,则必须定义它。
相关文章:
- 推导 std::vector::back() 的返回类型
- vector.back() 和 vector[vector.size() - 1] 之间的区别?
- vector.push_back(vector.back()+1) 是未定义的行为吗?
- C++自己的对象堆栈.在 push() 上复制了什么?
- C++ push() 和 pop() 方法使用指针的动态 LinkedList 的问题
- 如何像在javascript中一样"push" c ++映射
- 线路抑制状态错误 C4703 可能未初始化的局部指针变量"back"已使用
- std::vector using back(), pop_back(), push_back(), 得到'double free or corruption'错误
- vector.back()和vector.end()有什么区别
- 列表大小为 1,但 front() 和 back() 不相等
- 返回C++中没有 back() 方法的容器的最后一个元素?
- 在非空 std::list 上使用 std::list.back<int>() 时"Segmentation Fault"
- 模板堆栈类的复制构造函数中的 pop() 和 push() 不起作用
- 我们可以使用Back() - 值索引在其上执行向量插入
- 当我运行以下代码添加str.front() str.back时,它给了我200个,但为什么
- push(ing)back在循环中对象指针
- 在 C++ 中将元素添加到空向量:为什么 push.back 有效而 [] 无效
- 我似乎无法让 v.push.back() 处理字符串
- String::push_back() does not push back
- 向量resize(), push.back(), reserve()方法