c++ - 在没有 vector ,指针的情况下在c++中在运行时增加数组大小

标签 c++ c arrays malloc dynamic-allocation

<分区>

我已经在 C++ 中声明了一个具有一定大小的 int 数组。 比如说,int a[6]

在运行时,如果我的数组大小超过 6,那么我需要增加它。

我不会使用指针、 vector ,用户也不会给出大小。

最佳答案

C 数组在编译时静态解析,因此无法在运行时调整大小。

如果您不想使用std::vectormallocnew,还有另一种选择:声明一个“big -enough”数组,然后将使用的元素数保存在另一个变量中。例如:

int a[big_enough];
size_t a_size = 0;

但我的建议绝对是使用std::vector !例如:

std::vector<int> a(6);

初始化一个 6 个 int 等于 0 的 vector 。

如果你需要改变他们的值(value),你可以访问他们

a[i] = 3;

其中 i05 之间的整数(即 a.size())。

顺便说一句,您通常不想明确设置 vector 大小。声明为空,然后一个一个添加元素。例如:

std::vector<int> a;
a.push_back(-3);

关于c++ - 在没有 vector ,指针的情况下在c++中在运行时增加数组大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29144255/

相关文章:

c - 在非常大的文件上优化 mmap

c - 如何在c中的可执行文件上实现选项?

arrays - Scala 将 WrappedArray 或 Array[Any] 转换为 Array[String]

c++ - 模板非类型参数,C++11,字符串文字的限制

c++ - 如何在内存分析期间跟踪 C++ 应用程序中内存访问的频率和容量?

c - 拆分一个字符串并组合 2 个字符串 - C

javascript - 通过新行(包括空行)将textarea中的文本拆分为javascript数组

c++ - Win32 - 处理退格命令?

C++ 不使用正则表达式的多个字符串匹配

javascript - 如何输出 javascript 并使 sleep 或 wait 在 foreach 循环中工作