經典的,我在這裏尋找優化:我有一些東西,經過一些處理後,我知道我只對j到j的元素感興趣。如何用胖子最輕的方式修剪我的數組,並在j之前和之後完全刪除/釋放元素內存?修剪陣列到i和j之間的元素
我正在做嵌入式C++,所以我可能無法編譯各種庫讓我們說。但在第一階段歡迎std或向量的東西!
我嘗試過,對於陣列A至i和j之間進行修整,具有可變numElms告訴我元素的數量在一個:
A = &A[i];
numElms = i-j+1;
由於它是這會產生一個不兼容錯誤。這可以修復嗎?即使修復了,現在也可以釋放內存 - 未使用的內存?
上下文:這個數組是我的模塊的中心數據集,它可能很重。只要模塊存在,它就會存活。這段時間沒有必要承擔自重。這是完成的第一件事 - 確定要分析哪一部分數據集,並永遠修剪和拋棄其餘部分,永遠不要再使用它(直到下一個週期,我們可能會得到一個新的數組)完全不同的尺寸)。
是在原始陣列中的數據或者是在容器像一個向量? – NathanOliver
現在它是一個更復雜的對象數組,但如果它意味着更容易修剪和其他處理,我願意更改爲容器 –
嗯,矢量應該與原始數組一樣易於使用。它還可以通過編寫2行代碼來實現您想要的功能。如果這樣的作品,那麼你想要的是在這裏覆蓋:http://stackoverflow.com/questions/37575163/how-to-slice-a-vector-in-c-and-assign-to-itself – NathanOliver