作者lalasochi (蝴蝶效應)
看板C_and_CPP
標題[問題]請教向量裡使用iterator的...解釋,感謝您
時間Wed Feb 11 11:21:49 2009
版上各位先進您們好..小弟我最進重新碰c++(使用DevC++)
當時沒學的很好...有些觀念現在想請教一下各位
請問一下在for的迴圈裡一般而言會像下面這樣
for(int i=0;i<=5;i++)這邊可以理解的是這迴圈是
以i初始為0,i=i+1一直跑到超過5就跳出迴圈
但在向量中小弟我看到一個式子無法理解
for(vector<int>::iterator it = ivector.begin();
it != ivector.end();it++)
第一項是指將it 指向ivector這個向量的起始位址嗎?
第二項為什麼是用!=,這邊最讓小弟我無法理解?
另外還看到一個使用find的例子
輸入一個值為search想在ivector這個向量中看能不能找到相同值
vector<int>::iterator it = find(ivector.begin(), ivector.end(), search);
if(it != ivector.end())
{ cout << "找到搜尋值!" << endl; }
else { cout << "找不到搜尋值!" << endl; }
小弟我想請教一下這邊的if裡的條件為什麼還是當!=時是符合找到的條件呢
小弟我第一次在版上發文,不曉得有沒有什麼不妥,也請各位前輩多多指教
另外小弟我是在良葛格學習筆記這個站上自習C++
小弟我記得這位大大好像也會上本版的樣子..在這邊一併致謝
謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.123.166.81
1F:推 saxontai:因為 end() 所代表的位址是真正最後一筆資料的下一筆,所 02/11 11:28
2F:→ saxontai:以當 iterator == end() 時,vector 裡的資料才有被完全 02/11 11:29
3F:→ saxontai:走訪完畢。 02/11 11:29
5F:→ james732:return value 的第二行是這麼說的: 02/11 13:09
6F:→ james732:If no element matches, the function returns last. 02/11 13:09
7F:→ lalasochi:謝謝兩位大大的熱心解說..我似乎有點了解它的含義了.. 02/11 17:09
8F:→ lalasochi:當時會覺奇怪是通常回圈的條件都是設一個範圍而不是一點 02/11 18:07
9F:→ lalasochi:不過現在我大概知道要怎麼去想像了..感謝 02/11 18:07