c++ - 尝试动态增加数组大小

标签 c++ arrays

我正在开发一个程序,用户不断输入数字,这些数字被保存到一个数组中,当数组已满时,我试图将原始数组复制到一个新数组中并继续填充该数组,但是我不能让它工作。到目前为止,这是我的代码

#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;

int main()
{
    int size;
        cout << "Please enter how many numbers you want to enter: ";
    cin >> size; 
    double *array = new double*[size];
    cout << "Please enter your numbers: ";
    for(int i = 0; i < size; i++) {
        cin >> array[i];
        if(i == size-1) {
            int newSize = 2*size;
            double *arrayb = new double*[newSize];
            for(int i = 0;i<size;i++) {
                arrayb[i] = array[i];
            }
            delete [] array;
            array = arrayb;
            size = newSize;
        }
    }   
}

最佳答案

如果在执行前不知道集合的最大大小,则需要避免使用数组。正如 TartanLlama 所说,您可以使用 std::vector。 Vector 允许您根据需要添加项目。 但是有很多容器具有不同的访问方法。请参阅此链接以初步了解如何选择您的容器: In which scenario do I use a particular STL container?

关于c++ - 尝试动态增加数组大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40485030/

相关文章:

c++ - 为什么在 Windows 上没有微秒分辨率的 boost::date_time?

c++ - 使用调用约定 fastcall 的任何实际用例?

PHP 数组中的注释?

Java - 如何删除字符串数组中的特殊字符?

c++ - 显示用户创建的数组 C++ 中的数字

c - 查找二维数组中特定元素的总数

c++ - 通过鱼眼畸变功能扭曲直线并在图像中正确绘制

c++ - 数字小于机器精度的安全算术?

c++ - 字符串 (const char*, size_t) 到 int?

arrays - Kotlin String到Int数组