所以现在我在C++中有了一个叫Set的类。在其中,我有一个称为mCardinality的整数和一个称为mElements的整数数组。我希望能够在构造函数中接受mCardinality的整数,然后使用它为我的整数数组分配大小,是否有任何方法可以做到这一点,或者我绝对必须马上拥有它的大小?
(我想我可以将大小设为最大整数,然后仅使用基数来限制我处理元素的循环,但是更整洁的解决方案会更可取)。

我确实在这里看到,也许有一种方法可以使用std::vector来调整数组的大小,这行得通吗?而且...代码看起来如何? vector 是否可以像C++中的数组一样用于我想做的所有其他事情?

最佳答案

您可以选择以下选项:

  • 使用std::vector或
  • 使用普通的旧数组

  • 带 vector (推荐):
    class YourSet {
    public:
       YourSet(int size) : elements(size)
       {
       }
    private:
       std::vector<int> elements;
    };
    

    使用数组(由于可能存在异常安全问题,因此不建议使用):
    class YourSet {
    public:
       YourSet(int size)
       {
           elements = new int[size];
       }
       ~YourSet()
       {
            delete[] elements;
       }
    private:
       int* elements;
       // no implementation to prevent shallow copying
       YourSet( const YourSet&);
       void operator=(const YourSet&);
    };
    

    08-06 01:02