→ Ebergies:vector 很好啊 11/03 14:25
→ Ebergies:除非你們在做 embedded system 不然其實找不太到理由不用 11/03 14:26
→ tjjh89017:應該是因為vector在配置空間上面有一些特性 11/03 14:27
→ tjjh89017:所以會不是很好用,例如會多配置一倍的空間,以及 11/03 14:27
^^^^^^^^^^^^^^^^
這部分不太懂。
我知道會有一些額外的資訊來保有vector的操作功能,不過不知道有到一倍這麼多。
→ tjjh89017:配置空間後記憶體位置有可能改變,以致iterator不能用 11/03 14:28
推 Ebergies:樓上這些可以用 reserve 解決... 11/03 14:30
→ stimim:vector 的 capacity 可能會到 size 的兩倍的樣子 11/03 15:39
→ linotwo:這是因為 vector 需要連續的記憶體空間,當它發現不夠用 11/03 16:02
→ linotwo:就會去跟系統要求換一塊更大的連續空間。 11/03 16:04
→ linotwo:在一般使用的情況下,如果知道最多會用到多大的空間, 11/03 16:07
→ linotwo:可以在操作 vector 之前先用 reserve 保留一塊空間, 11/03 16:08
→ linotwo:以免操作的時候 vector 自動去進行 realloc 的動作。 11/03 16:09
感謝解說:) 看來用的時候要多留意一點
※ 編輯: QHsin 來自: 220.133.45.115 (11/03 17:07)
→ AntaresStar:我覺得其實是vector比較好寫而map比較難寫 XD 11/04 00:26
→ AntaresStar:如果map也很好寫的話 就會看到很多人自己寫了 11/04 00:27
推 Ebergies:推樓上 xDDDDD 11/04 10:31
推 descent:AntaresStar+1, 光 rb tree 就令人傷透腦筋 11/04 15:08