创建具有非预定义大小的数组
Create an array with a non - predefined size?
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[]
相关文章:
- 当我使用自定义类型创建动态数组时,即使使用字符串,它似乎也不起作用
- C++编程从外部文本文件定义数组大小
- 具有自定义构造函数 (C++) 的类型的动态数组分配
- 删除动态数组时未定义标识符
- 在定义字符数组(井字游戏)的 for 循环中应用输入限制
- C++ 返回指向函数内定义的静态数组的指针是否有效?
- 如何使用自定义类型声明Arduino数组?
- 自定义 STL 兼容迭代器,用于迭代 2D 数组类的列
- 如何访问宏中定义的数组元素
- 为什么我的 2D 数组未定义?
- shared_ptr<>到数组自定义删除器(带make_shared)
- const 数组,用于在数组长度定义中使用其元素或为模板参数提供值
- C++数组类定义和实现,未在作用域中声明
- 在头文件的数组中定义资源 ID
- 如何处理C++中在数组上定义的函数
- c++和Java数组声明/定义:差异
- C++ 我知道数组长度,但想知道是否是一种更简洁的数组元素定义方法
- 使用C++数组输入定义重载函数是安全的
- 堆积或堆叠数组.用户定义的类型难题
- 通过无符号整数读取无符号字符数组未定义,因此不安全