如何在不知道数组大小的情况下声明数组?C++
How do I declare an array without knowing its size? C++
我必须编写一个程序,从用户输入中读取一串数字,直到它读取0。例如,如果引入的值为 1、2、3、0,则数组 X 将包含 1、2 和 3,数组大小将为 3。插入的值数量没有指定的限制,我不能只声明任何大小的数组,所以有没有办法动态增加数组的大小,以便在读取时能够容纳更多的 int 值?
您可以使用
std::vector
,这是一个可变长度的集合,您可以在其中添加元素。它在需要时自动管理重新分配。例如:
std::vector<int> values;
values.push_back(0);
values.push_back(1);
...
它被称为动态内存分配 在这里检查另一个问题
但通常我会使用向量
#include <vector>
using namespace std;
int main(){
vector<int> v;
int x;
while(cin>>x && x != 0){
v.push_back(x);
}
}
您应该注意,vector
类仅通过实现动态内存分配而存在。它只是为您服务,您无需做所有艰苦的工作,例如保留和销毁分配的内存......
你可以使用 std::vector。它会随着您push_back
元素而动态增长。
相关文章:
- 是默认情况下分配给char数组常量的值
- C++默认情况下,指针类型数组的元素是否保证初始化为 nullptr?
- C++数组与向量排序(在我的情况下,向量比数组慢~2.5倍(无优化))
- 如何在不使用 C++ 中的数组或函数的情况下查找 N 位数字的所有排列
- 如何在没有硬编码的情况下以C++为单位获取类数组的长度?
- 有没有一种惯用的方法可以在不存储变换或不必要地重新计算的情况下找到数组变换的最小/最大值?
- 使用一个内存集数组和单个堆栈在 O(n) 中查找数组的下一个更大元素
- 在 c 中给定一个固定数的情况下,找到所有可能的加法和组合(给定一个总和,找到它的可能的加法和排列
- 如何在不知道大小的情况下读取文本文件并存储到数组中
- 在不进行排序的情况下查找数组中n个最小值的索引
- 在这种情况下,数组a会被取消分配吗
- 如何对同一数组索引下的结构成员进行排序?
- 有没有办法将数字作为字符串,并在不使用浮点数或双精度数的情况下将其四舍五入到确切的位数
- 我可以在不知道文本文件的列数的情况下读取二维数组中的文件吗?
- 如何在没有浮点数/双精度数的情况下生成均匀和高斯分布的伪随机数
- 在给定每行按钮数的情况下,查找需要多少行
- c++中,数组的下标需要为整型
- c/c++:二维数组变量下标
- 字符串/数组情况c++
- 如何将分配给*Child[n]的*Base指向Child数组的下一个元素