动态二维数组的取代方式,为了提高效率
在写一个程序,需要用到比较多的二维矩阵,但是大小总是变化的,所以考虑使用动态二维数组。
但是随之而来的问题是动态二维数组的内存分配需要一定时间,内存释放也需要一定时间,所以造成效率较低。
求大家给出好的建议,用一维数组取代行吗?内存分配效率和释放效率是不是高很多(我知道动态二维数组要作一次以为的遍历),直接:
a = new type[ArrySize];
delete []a;
就行了。这样是不是比动态二维数组效率高?
或者有没有一种自动释放内存的指针?auto_ptr?
[解决办法]
我是尽量避免new/delete的。
[解决办法]
1、一维数组的new/delete操作要少很多;
2、尽量作预测和平均,预先把数组开稍微大一些,避免频繁的new/delete操作。