[問題] STL iterator 在 for 中慣用法
遇到要列舉一容器(如vector)中的元素時
我看過的書都建議這樣…
(A)
for ( vector<myType>::iterator iter = myVect.begin();
iter != myVect.end();
++iter )
{
...
iter->xxx // blahblah
...
}
而不要寫成
(B)
for ( unsigned i = 0; i < myVect.size(); ++i )
{
...
myVect[i].xxx // blahblah
...
}
當然 map set等一定要用A
但vector中 我反而覺得A寫得很囉嗦
萬一在for主體又想取得索引值(i的值)時,
又很麻煩 (把iter - myVect.begin() ) 或者干脆用B的寫法
效率上也許 iter->xxx 比 myVect[i].xxx 快
後者多一個i的加法??
請問A的寫法還有什麼優點呢?
感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.36.34.134
推
08/09 18:51, , 1F
08/09 18:51, 1F
推
08/09 20:09, , 2F
08/09 20:09, 2F
→
08/09 20:35, , 3F
08/09 20:35, 3F
→
08/09 21:22, , 4F
08/09 21:22, 4F
→
08/09 21:23, , 5F
08/09 21:23, 5F
推
08/09 21:27, , 6F
08/09 21:27, 6F
→
08/09 21:27, , 7F
08/09 21:27, 7F
→
08/09 21:27, , 8F
08/09 21:27, 8F
→
08/09 21:31, , 9F
08/09 21:31, 9F
→
08/09 21:32, , 10F
08/09 21:32, 10F
→
08/09 21:33, , 11F
08/09 21:33, 11F
→
08/09 21:48, , 12F
08/09 21:48, 12F
→
08/09 21:48, , 13F
08/09 21:48, 13F
→
08/09 21:49, , 14F
08/09 21:49, 14F
→
08/09 21:51, , 15F
08/09 21:51, 15F
→
08/09 21:51, , 16F
08/09 21:51, 16F
→
08/09 21:54, , 17F
08/09 21:54, 17F
→
08/09 21:55, , 18F
08/09 21:55, 18F
→
08/09 21:55, , 19F
08/09 21:55, 19F
→
08/09 21:56, , 20F
08/09 21:56, 20F
→
08/09 21:56, , 21F
08/09 21:56, 21F
→
08/09 23:09, , 22F
08/09 23:09, 22F
→
08/10 14:15, , 23F
08/10 14:15, 23F
→
08/10 14:15, , 24F
08/10 14:15, 24F
→
08/10 14:59, , 25F
08/10 14:59, 25F