我最近开始学习 C++(已经有很多 C 经验)。
我简要地查看了 vector<..>
和 array<..>
.
我想知道 C++ 对象的数据成员的最佳数组类型是什么。请记住我想要封装,所以这个数据成员将是私有(private)的 - 所以我需要它的 getter 和 setter 函数。
我知道数组的长度(长度将保持不变,因此不需要重新分配)。
请问传统的int array[100];
成为最好的?
提前致谢! :)
最佳答案
当您在编译时知道数组的长度时,您可能应该使用 array
。您也可以选择vector
,但这可能会让某些人认为大小可能会发生变化(或者至少在编译时未确定)。如果您使用大型数组并且变量位于本地范围内,您应该考虑使用 vector
。
使用 int array[100];
也可以作为替代方案,它有一些优点也有一些缺点。
优点是它的设置速度可能稍快(无论如何它可能比 vector
快)并且您可以用经典方式初始化它。另一个是一些实现将允许经典数组在实例化时决定可变长度(我不认为它已经成为标准,但它很容易支持),如果你当然接受依赖支持这个的实现扩展名。
缺点是您不能轻松地完全访问 STL 方法(您仍然可以通过 std::begin
和 std::end
来获取数组的迭代器),而且如果创建为局部变量,则必须使用堆栈空间来存储对象,而不是 vector
,后者需要为存储动态分配空间( array
可能会使用堆栈空间)。
关于c++ - C++ 对象数据成员的最佳数组类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33096599/