我们有一个排序数组,我们希望将一个索引的值增加1个单位(array [i] ++),这样生成的数组仍然是排序的.这可能在O(1)中吗?可以在STL和C++中使用任何可能的数据结构.
在一个更具体的情况下,如果数组是由所有0值初始化的,并且它总是仅通过将索引值增加1来递增构造,那么是否存在O(1)解?
我在头文件中创建这样的数组:
double (*arrayName)[b][c];
并在cpp文件中像这样分配:
arrayName= new double[a][b][c];
其中a,b和c是基于我正在处理的数据大小的常量.
如何释放此数组?我尝试在三维数组的释放中执行建议,但这给了我一个"警告C4154:删除数组表达式;转换为指针提供"并导致堆损坏错误.
我宁愿不改变向量,因为我正在处理重新利用的遗留代码,但需要保持与原始代码类似.我已经不得不从使用静态分配更改为new/delete,因为我们正在使用的数据规模溢出了堆栈.
编辑:WhozCraig的方法似乎是正确的.我认为我释放这个数组的方式(以及其他类似的)是我的问题,但我注意到我的代码中的另一个问题.我想我已经解决了这个问题,一旦我的程序重新运行(至少需要一两天),我会报告回来.感谢所有回复的人.
编辑2:事情仍然没有100%工作,但问题超出了这个问题的范围,我能够调整一些值,以使事情运作良好,完成工作.再次感谢所有回复的人.