Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.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++;媒介使用_C++_Visual C++_Vector - Fatal编程技术网

C++ 简单C++;媒介使用

C++ 简单C++;媒介使用,c++,visual-c++,vector,C++,Visual C++,Vector,这是迄今为止我的头文件代码的一部分: class Class { public: Class(); void addSmallerClassToVector(int i1, int i2); vector<SmallerClass>* listofClasses; }; void Class::addSmallerClassToVector(int i1, int i2) { SmallerClass* sC =

这是迄今为止我的头文件代码的一部分:

class Class
{
   public:
        Class();
        void addSmallerClassToVector(int i1, int i2);
        vector<SmallerClass>* listofClasses;
};

void Class::addSmallerClassToVector(int i1, int i2)
{
        SmallerClass* sC = new SmallerClass(i1, i2);
        listofClasses.push_back(sC);
}
类
{
公众:
类();
void addSmallerClassToVector(intI1,intI2);
向量*类列表;
};
void类::addSmallerClassToVector(intI1,intI2)
{
SmallerClass*sC=新的SmallerClass(i1,i2);
类列表。推回(sC);
}
SmallerClass
只是一个包含两个int值的简单类。但是,此代码在类列表的行
上生成一个错误


我也尝试过使用
.insert()
,但也出现了同样的问题。我尝试使用
->
而不是
之类的,但是错误表明这与
类列表
没有类型或其他东西有关


我想向向量中添加一个类,该向量已经存在于
类中。如何做到这一点?

简单的修复方法是更改为:

vector<SmallerClass *> listofClasses;
       ^^^^^^^^^^^^^^
类的向量列表;
^^^^^^^^^^^^^^
或者,您可以:

vector<SmallerClass> listofClasses;
...
SmallerClass sC(i1, i2);
listofClasses.push_back(sC);
类的向量列表;
...
小类sC(i1,i2);
类列表。推回(sC);

简单的修复方法是更改为:

vector<SmallerClass *> listofClasses;
       ^^^^^^^^^^^^^^
类的向量列表;
^^^^^^^^^^^^^^
或者,您可以:

vector<SmallerClass> listofClasses;
...
SmallerClass sC(i1, i2);
listofClasses.push_back(sC);
类的向量列表;
...
小类sC(i1,i2);
类列表。推回(sC);

简单的修复方法是更改为:

vector<SmallerClass *> listofClasses;
       ^^^^^^^^^^^^^^
类的向量列表;
^^^^^^^^^^^^^^
或者,您可以:

vector<SmallerClass> listofClasses;
...
SmallerClass sC(i1, i2);
listofClasses.push_back(sC);
类的向量列表;
...
小类sC(i1,i2);
类列表。推回(sC);

简单的修复方法是更改为:

vector<SmallerClass *> listofClasses;
       ^^^^^^^^^^^^^^
类的向量列表;
^^^^^^^^^^^^^^
或者,您可以:

vector<SmallerClass> listofClasses;
...
SmallerClass sC(i1, i2);
listofClasses.push_back(sC);
类的向量列表;
...
小类sC(i1,i2);
类列表。推回(sC);

您需要设置向量来存储指针:

vector<SmallerClass*> listofClasses;
您所做的是声明一个指向包含SmallerClass的向量的指针

vector<SmallerClass>* listOfClasses;
vector*类列表;
因此,在声明中,当您使用它时,它甚至没有初始化。 您还可以在构造函数中执行以下操作:

listOfClasses = new vector<SmallerClass>();
listOfClasses=newvector();

然后您必须使用
->
运算符来处理这些方法。但是还要注意其他提到的问题。

您需要设置向量来存储指针:

vector<SmallerClass*> listofClasses;
您所做的是声明一个指向包含SmallerClass的向量的指针

vector<SmallerClass>* listOfClasses;
vector*类列表;
因此,在声明中,当您使用它时,它甚至没有初始化。 您还可以在构造函数中执行以下操作:

listOfClasses = new vector<SmallerClass>();
listOfClasses=newvector();

然后您必须使用
->
运算符来处理这些方法。但是还要注意其他提到的问题。

您需要设置向量来存储指针:

vector<SmallerClass*> listofClasses;
您所做的是声明一个指向包含SmallerClass的向量的指针

vector<SmallerClass>* listOfClasses;
vector*类列表;
因此,在声明中,当您使用它时,它甚至没有初始化。 您还可以在构造函数中执行以下操作:

listOfClasses = new vector<SmallerClass>();
listOfClasses=newvector();

然后您必须使用
->
运算符来处理这些方法。但是还要注意其他提到的问题。

您需要设置向量来存储指针:

vector<SmallerClass*> listofClasses;
您所做的是声明一个指向包含SmallerClass的向量的指针

vector<SmallerClass>* listOfClasses;
vector*类列表;
因此,在声明中,当您使用它时,它甚至没有初始化。 您还可以在构造函数中执行以下操作:

listOfClasses = new vector<SmallerClass>();
listOfClasses=newvector();

然后您必须使用
->
运算符来处理这些方法。但也要注意其他提到的问题。

最可靠的解决方案是不在向量中存储指针。也没有理由在
类中存储指向向量的指针

#include <vector>

class Class
{
   public:
        Class();
        void addSmallerClassToVector(int i1, int i2);
        std::vector<SmallerClass> listofClasses;
};

void Class::addSmallerClassToVector(int i1, int i2)
{
        listofClasses.push_back(SmallerClass(i1, i2));
}
#包括
班级
{
公众:
类();
void addSmallerClassToVector(intI1,intI2);
类的向量列表;
};
void类::addSmallerClassToVector(intI1,intI2)
{
类列表。向后推(小类(i1,i2));
}

最可靠的解决方案是不在向量中存储指针。也没有理由在
类中存储指向向量的指针

#include <vector>

class Class
{
   public:
        Class();
        void addSmallerClassToVector(int i1, int i2);
        std::vector<SmallerClass> listofClasses;
};

void Class::addSmallerClassToVector(int i1, int i2)
{
        listofClasses.push_back(SmallerClass(i1, i2));
}
#包括
班级
{
公众:
类();
void addSmallerClassToVector(intI1,intI2);
类的向量列表;
};
void类::addSmallerClassToVector(intI1,intI2)
{
类列表。向后推(小类(i1,i2));
}

最可靠的解决方案是不在向量中存储指针。也没有理由在
类中存储指向向量的指针

#include <vector>

class Class
{
   public:
        Class();
        void addSmallerClassToVector(int i1, int i2);
        std::vector<SmallerClass> listofClasses;
};

void Class::addSmallerClassToVector(int i1, int i2)
{
        listofClasses.push_back(SmallerClass(i1, i2));
}
#包括
班级
{
公众:
类();
void addSmallerClassToVector(intI1,intI2);
类的向量列表;
};
void类::addSmallerClassToVector(intI1,intI2)
{
类列表。向后推(小类(i1,i2));
}

最可靠的解决方案是不在向量中存储指针。也没有理由在
类中存储指向向量的指针

#include <vector>

class Class
{
   public:
        Class();
        void addSmallerClassToVector(int i1, int i2);
        std::vector<SmallerClass> listofClasses;
};

void Class::addSmallerClassToVector(int i1, int i2)
{
        listofClasses.push_back(SmallerClass(i1, i2));
}
#包括
班级
{
公众:
类();
void addSmallerClassToVector(intI1,intI2);
类的向量列表;
};
void类::addSmallerClassToVector(intI1,intI2)
{
类列表。向后推(小类(i1,i2));
}


非常感谢!这是一个非常简单的修复:)@user2058340但存储指针可能不是一个好主意。你有充分的理由这么做吗?没错,但OP的代码中没有任何东西表明他们需要指针向量。他们存储指向向量的指针这一事实让我觉得他们不理解其中的含义……嗯。。。我必须存储在这个向量中的数据数量相当大。我可能需要SmallerClass来保存一个单独的向量类。还是不使用指针更好吗?@user2058340我倾向于认为指针在这里也是个坏主意。您必须明确地
删除它们并删除它们