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

在C++中延迟类定义中的数组大小?

如何解决《在C++中延迟类定义中的数组大小?》经验,为你挑选了2个好方法。



1> RedBlueThing..:

Daniel正在谈论的是,在调用Test(width,height)方法时,您需要动态地为数组分配内存.

你会像这样声明你的二维(假设整数数组):

int ** _array;

然后在你的Test方法中你需要先分配指针数组,然后为每个指针分配一个整数数组:

_array = new  *int [height];
for (int i = 0; i < height; i++)
{
    _array [i] = new int[width];
}

然后当释放对象时,您需要显式删除分配的内存.

for (int i = 0; i < height; i++)
{
    delete [] _array[i];
    _array [i] = NULL;
}
delete [] _array;
_array = NULL;



2> Artyom..:

矢量是你最好的朋友

class Test
{
    private:
    vector > _array;

    public:
    Test(int width, int height) :
        _array(width,vector(height,0))
    {
    }
};


实际上,vector*必须*使用数组来存储数据.该标准规定了向量中的元素是连续的.
推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有