当前位置:  开发笔记 > 编程语言 > 正文

动态数组

如何解决《动态数组》经验,为你挑选了1个好方法。

我刚刚开始学习C++,请原谅我这个简单的问题.我正在做的是从文件中读取数字,然后尝试将它们添加到数组中.我的问题是你如何增加阵列的大小?例如,我认为可能只能这样做:

#include 
using namespace std;

int main() {
    double *x;
    x = new double[1];
    x[0]=5;
    x = new double[1];
    x[1]=6;
    cout << x[0] << "," << x[1] << endl;
    return 0;
}

但这显然只会覆盖我最初设置为x [0]的值5,因此输出0,6.我怎么做到它会输出5,6?

请注意,对于我已经包含的示例,我不想使用从文件或代码中读取的代码来混淆它以从用户获取数字.在实际的应用程序中,我不知道在编译时我需要多大的数组,所以请不要告诉我只使用两个元素创建一个数组,并将它们分别设置为5和6.

谢谢你的帮助.



1> Chris Jester..:

您不希望直接使用数组.考虑使用a vector,而不是.然后,您可以调用该push_back函数将事物添加到最后,它将自动为您调整矢量大小.

#include 
#include 

int
main() {
    double value;
    std::vector values;

    // Read in values
    while (std::cin >> value) {
        values.push_back(value);
    }

    // Print them back out
    for (std::size_t i(0), len(values.size()); i != len; ++i) {
        std::cout << values[i];
    }
}


在进入自定义分配器之前,如果你知道_roughly_数组可能有多大,你可以使用vector :: reserve()来确保有足够的空间来避免多次调整:参见例如http:// stackoverflow. COM/q /九万一千八百零八分之六百五十二万五千六百五十
推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有