討論串[問題] operator new[] 和 delete[] 混用
共 4 篇文章
首頁
上一頁
1
下一頁
尾頁
內容預覽:
其實我現在是在想有沒有更快的處理方式。. 一切問題由下衍生..... 假設我寫的 array,size 是 16,capacity 也是 16,. 以 capacity 倍增的方式實作。. 那現在要多加一個項目,不是要另外配置大小 32 的空間嗎?. 最直覺的想法是,如果那 32 個空間有初使化過,
(還有320個字)
內容預覽:
其實我大致可以了解原 po 的需求. 那就是把「配置空間」與「執行 ctor 初始化」的動作分離. 比如說 std::vector 會預先配置更多的空間以備不時之需. 在配置時並不需要呼叫 ctor. 只有在真正塞元素進去時才需要初始化. 在 C++ 中可以用 placement new 來做到這件
(還有1348個字)
內容預覽:
不是 delete 的問題,這個容器初始化就己經一團糟了. 你只配置空間,不初始化T. 我猜之後會有個操作來"初始化" T:(初始化程序只能交給ctor,這裡的初始化是錯誤說法). data[i] = T();. 問題是 data[i] 裡的 T 沒初始化. 所以它的 operator = 根本不存
(還有100個字)
內容預覽:
(C++ Primer p760, operator new != new). 由於特殊需求,要加強效率,在配置空間時,. 不必呼叫 constructor (會浪費時間). 但釋放時,又必須呼叫 destructor. T* data = static_cast<T*>(operator new[
(還有45個字)
首頁
上一頁
1
下一頁
尾頁