所以现在我在 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&);
};
关于c++ - 如何在 C++ 中将大小动态分配给数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11535935/