[問題] 關於vector迴圈操作的問題
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
問題(Question):
想請問各位前輩
小弟最近正好有需要用到vector
也剛好有去SURVEY一些資料
看到了兩種vector的操作方法
不太確定兩者孰優孰劣
又兩個的差異是在哪裡
故來詢問版上的前輩
第一種用法是一般的操作迴圈的方法
for (unsigned int i = 0; i < v.size(); i++)
do_something...
第二種用法是使用iterator去操作
for( vector<Glyph *>::iterator it = v.begin() ; it != v.end() ;
it++ )
do_something...
另外還想請問
小弟目前使用第二種的用法時
是使用 it[0] 才能拿到要的東西
(有看過 *it 的用法,但好像不WORK,抑或是小弟用錯方法)
想請問小弟這樣的用法是否正確
小弟不是很熟悉C++
還請版上的前輩指教
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.167.203.194
→
10/09 10:58, , 1F
10/09 10:58, 1F
→
10/09 10:58, , 2F
10/09 10:58, 2F
推
10/09 11:41, , 3F
10/09 11:41, 3F
→
10/09 11:42, , 4F
10/09 11:42, 4F
→
10/09 11:43, , 5F
10/09 11:43, 5F
推
10/09 11:45, , 6F
10/09 11:45, 6F
推
10/09 11:50, , 7F
10/09 11:50, 7F
→
10/09 11:53, , 8F
10/09 11:53, 8F
→
10/09 11:53, , 9F
10/09 11:53, 9F
→
10/09 12:07, , 10F
10/09 12:07, 10F
→
10/09 12:07, , 11F
10/09 12:07, 11F
→
10/09 12:15, , 12F
10/09 12:15, 12F
推
10/09 12:21, , 13F
10/09 12:21, 13F
感謝各位前輩的指教
小弟的CODE
vector<V *> v; //操作時內部會有值
for( vector<V *>::iterator it = v.begin() ; it != v.end() ; it++ )
if( *it -> getUniKey() == uni_key )
do_something...
若使用上述的CODE
就會出錯(改使用it[0]則不會)
錯誤訊息如下:
1. invalid return type 'V **' for overloaded 'operator ->
2. expression must have pointer-to-class type
不太確定小弟提供的資訊是否足夠
先感謝各位大大了!!
※ 編輯: transmituni 來自: 118.167.201.201 (10/09 13:07)
※ 編輯: transmituni 來自: 118.167.201.201 (10/09 13:08)
→
10/09 13:18, , 14F
10/09 13:18, 14F
→
10/09 14:38, , 15F
10/09 14:38, 15F
→
10/09 14:53, , 16F
10/09 14:53, 16F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章