创建具有非预定义大小的数组

Create an array with a non - predefined size?

本文关键字:数组 预定义 创建      更新时间:2023-10-16

c++新手(昨晚),但我已经使用了c#一点。

我试图从用户中获取一个变量并创建一个该大小的数组:我遇到的问题是c++希望所有数组都是常量大小。我无意试图改变数组的大小,一旦它被创建,但我似乎甚至不能创建它,因为我没有初始化它与一个常数。
这是我尝试使用的代码:

int a;
cin >> a;
const int b = a;
int c[b];

我试图绕过恒定的问题,但这不起作用。另一种选择是向量,但这似乎效率不高(因为它们与c#中的列表相当)。我不需要改变数组的大小或任何类似的东西。我是不是漏掉了什么明显的东西?

谢谢

遗憾的是,c++很复杂。如果没有一本书,你就不可能很好、很有效地学习它,因为书会解释所有的基础知识,比如如何使用容器。

要回答您的具体问题,std::vector是可行的。这不是低效的。但是是的,它们和System.Collections.Generic.List s是可以比较的。c++目前没有不可调整大小的可变长度容器,但无论如何它都无法比std::vector更有效地实现。

如果您想创建T对象的整体内存块,请尝试std::vector。设置大小使用"保留"answers"调整大小",差异可在手册中查看。

或者你可以使用operator new[],它允许创建动态数组,但这样你就必须释放内存,然后使用operator delete[]