Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将一个向量作为参数传递给另一个向量?_C++_Object_Vector - Fatal编程技术网

C++ 如何将一个向量作为参数传递给另一个向量?

C++ 如何将一个向量作为参数传递给另一个向量?,c++,object,vector,C++,Object,Vector,我无法将一个对象向量传递给另一个不同类型的对象向量。我想做的是制作一个对象Partidas,它显示Producto类型的对象的数组或向量,以及一些其他属性,但这些属性是int和string,我对它们没有问题。当我运行程序时,当通过按“0”完成las循环时,它标记为错误访问。我知道代码有点长,但我试着把所有的问题,所以希望你们能帮助我。另外,如果你知道一个更好的方法来做我想做的事,请让我知道。谢谢 矢量矢量产品; 而(文件>>sID>>sDesc>>sUMed>>sFam>>sClass>>dV

我无法将一个对象向量传递给另一个不同类型的对象向量。我想做的是制作一个对象Partidas,它显示Producto类型的对象的数组或向量,以及一些其他属性,但这些属性是int和string,我对它们没有问题。当我运行程序时,当通过按“0”完成las循环时,它标记为错误访问。我知道代码有点长,但我试着把所有的问题,所以希望你们能帮助我。另外,如果你知道一个更好的方法来做我想做的事,请让我知道。谢谢


矢量矢量产品;
而(文件>>sID>>sDesc>>sUMed>>sFam>>sClass>>dVolumen>>dLongitud>>sPrecio){
矢量产品推回(产品(sID、sDesc、sUMed、sFam、sClass、dVolumen、dLongitud、STRINGTODUBLE(sPrecio));
iNumProductos++;
}
file.close();
炭化;
int iNumPartidas;
做{
可以继续>>sPrecio){
如果(sID==sClave){
vecProdxP.推回(产品(sID、sDesc、sUMed、sFam、sClass、dVolumen、dLongitud、STRINGTODUBLE(sPrecio));
}
}
file.close();
}
}
}否则{
iPrd=iNumProductos;
}
}
vectorPartidas.push_back(Partida(斯巴达、斯德斯帕尔特、vecProdxP));
}

阶级党派

#ifndef Partidas_h
#define Partidas_h

#include <iostream>
#include <climits>
#include <string>
#include "Producto.h"

using namespace std;

class Partida{
private:
    string _sPartida, _sDescripcion;//double _dPrecioPartida;
    vector<Producto> _vecProd;

public:
    Partida();
    Partida(string, string, vector<Producto>);
    inline string getClave(){return _sPartida;}
    inline string getProy(){return _sDescripcion;}
    inline void setClave(string sPartida){_sPartida = sPartida;}
    inline void setProy(string sDescripcion){_sDescripcion = sDescripcion;}
    void toString();
};
Partida::Partida(){
_sPartida = "";
_sDescripcion = "";
}
Partida::Partida(string sPartida, string sTitulo, vector<Producto> vecProd){
_sPartida = sPartida;
_sDescripcion = sTitulo;
for(unsigned int i = 0; i < vecProd.size(); i++){
    _vecProd[i] = vecProd[i];
}
}
void Partida::toString(){
cout << "Clave de Partida:\t" << _sPartida << endl;
cout << "Proyecto:\t" << _sDescripcion << endl;
for(unsigned int i = 0; i < _vecProd.size();i++){
    _vecProd[i].toString();
    cout << endl;
}

}

#endif /* Partida_h */
\ifndef Partidas\u h
#定义Partidas_h
#包括
#包括
#包括
#包括“Producto.h”
使用名称空间std;
阶级党派{
私人:
字符串_sPartida,_sdescription;//double _dprecipartida;
向量_vecProd;
公众:
Partida();
Partida(字符串、字符串、向量);
内联字符串getClave(){return\u sPartida;}
内联字符串getProy(){return\u sdescription;}
内联void setClave(字符串sPartida){u sPartida=sPartida;}
内联void setProy(字符串sDescripcion){{u sDescripcion=sDescripcion;}
void toString();
};
Partida::Partida(){
_斯巴达=”;
_sDescripcion=“”;
}
Partida::Partida(字符串sPartida、字符串sTitulo、向量vecProd){
_斯巴达=斯巴达;
_sDescripcion=sTitulo;
for(无符号整数i=0;i
这没有任何意义。一种类型的对象向量与另一种类型的对象向量有什么关系

我想做的是制作一个对象Partidas,它显示Producto类型的对象的数组或向量,以及一些其他属性,但这些属性是int和string,我对它们没有问题

好的,那么你想要一个对象,它对另一种类型的对象向量执行一些操作。这似乎是合理的

我知道代码有点长,但是我试着把所有的东西都放在问题中,希望你们能帮助我。另外,如果你们知道一个更好的方法来做我想做的事情,请让我知道。这是我作为程序员的第一份工作,我想要一个好的开始。谢谢

你没有告诉我们你遇到了什么问题。代码没有编译吗?崩溃了吗?工作但没有做你想做的事吗?不知道出了什么问题很难提供帮助。但这里有一个秘密:

Partida::Partida(string sPartida, string sTitulo, vector<Producto> vecProd){
_sPartida = sPartida;
_sDescripcion = sTitulo;
for(unsigned int i = 0; i < vecProd.size(); i++){
    _vecProd[i] = vecProd[i];
}
}
Partida::Partida(字符串sPartida、字符串sTitulo、向量vecProd){
_斯巴达=斯巴达;
_sDescripcion=sTitulo;
for(无符号整数i=0;i

此代码将值分配给不存在的对象。由于
\u vecProd
是空向量,因此不存在
\u vecProd[0]在循环中赋值。我不知道为什么要通过扭曲来初始化对象到特定的值。C++有一个简单的对象初始化语法。

你忘记告诉我们问题是什么。问题不太有意义——向量不是函数,所以不要采取论据。“将参数传递给向量”的意思?你需要创建一个。所有的
cout
与问题有什么关系?菜单选择与问题有什么关系?文件打开与问题有什么关系?Partida
中的所有方法与问题有什么关系?哦,是的,正如轨道上的亮度竞赛所说的是什么你面临的实际问题是什么?@chrisddas类Partidas的属性是Producto类型的vector,我需要的是当用户想要看到“Partida”所具有的“Productos(Products)”时,显示Productos的vector。如果我写错了,很抱歉。
Partida::Partida(string sPartida, string sTitulo, vector<Producto> vecProd){
_sPartida = sPartida;
_sDescripcion = sTitulo;
for(unsigned int i = 0; i < vecProd.size(); i++){
    _vecProd[i] = vecProd[i];
}
}