c++ - 简单的 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 = new SmallerClass(i1, i2);
        listofClasses.push_back(sC);
}

SmallerClass 只是一个包含两个 int 值的简单类。然而,此代码在行 listofClasses.push_back(sC); 上生成错误。

我也试过使用.insert(),但是还是有同样的问题。我尝试使用 -> 而不是 . 等,但错误表明它与 listofClasses 没有类型或其他东西有关。

我想向 vector 中添加一个类,该类已经存在于 Class 类中。我该怎么做?

最佳答案

你需要设置你的 vector 来存储指针:

vector<SmallerClass*> listofClasses;

或者你可以改变你的方法来做:

SmallerClass sC(i1, i2);
listofClasses.push_back(sC);

您所做的是声明一个指向包含 SmallerClass 的 vector 的指针。

vector<SmallerClass>* listOfClasses;

因此,在您的声明中甚至在您使用它时都没有初始化。 然后,您还可以在构造函数中执行以下操作:

listOfClasses = new vector<SmallerClass>();

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

关于c++ - 简单的 C++ vector 用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23559186/

相关文章:

C++通过其指针和偏移量从类中读取

c++ - 为什么 lambda 返回 bool 值?

c++ - 如何将从文件中读取的一行拆分为多个整数?

c - 如何在 Windows/MSVC 上自动查找或构建 C 库依赖项?

c++ - VC++ 函数 string::c_str(): 第一个字节的地址被设置为 0(与 g++ 比较)

c++ - C++ vector 使用错误 : No matching member function for call to 'push_back'

C++ 嵌套类 - 内部/外部关系

c++ - async_write 方法错误

Java,创建一个对象 vector ,编译后其数组中应有n个零

c++ - 在构造函数中初始化数组或 vector