作者jokingfish (ㄚ魚!!)
看板C_and_CPP
標題[問題] 請教一下有關刪除deque的問題
時間Thu Aug 1 11:23:12 2013
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
問題(Question):
目前的程式實作上有大量的三角網格,會即時增加/刪除
三角網格個人是用deque去存的
增加是用.push_back() 還OK
刪除若用.erase() 會很慢.....超級慢
所以目前用的是一個變通的方法,還算堪用.....
每個三角網格多用一個flag 紀錄該網格有沒有被刪掉
一定時間後,再跑迴圈COPY還在的三角網格至另一串deque,把被刪掉的網格給濾掉
但是覺得這辦法很....蠢......><|||
對資料結構運算速度這塊沒這麼熟,想請教是否有能更迅速 方便的方法
請不吝賜教 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.112.106
推 suhorng:我覺得你的方法不錯阿XD 其他相關用途呢? 08/01 11:40
→ suhorng:例如需不需要 random access? 08/01 11:41
→ suhorng:三角網格儲存需要有順序性嗎? 08/01 11:41
→ suhorng:資料結構很多是在做trade-off 08/01 11:42
→ suhorng:例如改用平衡樹(e.g. set)之類可以達到O(log n)存取/增刪 08/01 11:42
→ azureblaze:邊跑迴圈邊刪還有list 是O(1)但是迴圈會跑比較慢 08/01 11:51