所以现在我在C++中有了一个叫Set的类。在其中,我有一个称为mCardinality的整数和一个称为mElements的整数数组。我希望能够在构造函数中接受mCardinality的整数,然后使用它为我的整数数组分配大小,是否有任何方法可以做到这一点,或者我绝对必须马上拥有它的大小?
(我想我可以将大小设为最大整数,然后仅使用基数来限制我处理元素的循环,但是更整洁的解决方案会更可取)。
我确实在这里看到,也许有一种方法可以使用std::vector来调整数组的大小,这行得通吗?而且...代码看起来如何? vector 是否可以像C++中的数组一样用于我想做的所有其他事情?
最佳答案
您可以选择以下选项:
带 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&);
};