Re: 請問一個關於iterator的問題...

看板C_and_CPP (C/C++)作者 (Khoguan Phuann)時間19年前 (2005/07/28 23:36), 編輯推噓3(304)
留言7則, 3人參與, 最新討論串1/3 (看更多)
※ 引述《slchen (風城遊子(B))》之銘言: : ※ 引述《slchen (風城遊子(B))》之銘言: : : 有兩個程式...其中hamming.cpp裡 : : int distance(vector<int> v1, vector<int> v2); : : 將兩個vector傳給這個function 然後算兩者的hamming distance : : 然後在counting.cpp中 : : vector < vector < int> > L10; : : ....... : : for (int m5=0; m5 < L10.size(); m5++) : : { : : int d2 = distance ( L10[m5],temp); : : 把L10[m5] 和temp(兩者皆為 vector < int> ) 傳給distance這個function : : 但是compile時有錯 : : 好像是說應該用iterator; : : 請問各位大大 應該怎麼改寫呢?... 你自訂的函式名稱和標準函式庫的 template<class Init> iterator_traits<InIt>::difference_type distance(InIt first, InIt last); 衝到了!最簡單的解法就是自己的函式改取不一樣的名字。 這個牽涉到 Argument Dependent Lookup (ADL 又稱 Koenig lookup) 像是 max() 或 min() 這種函式名也很容易衝到。 : 我再把error message po出來好了~~ : error 發生在int d2這一行~~ : In instantiation of `std::iterator_traits<std::vector<int, std::allocator<int : 31 C:\Dev-Cpp\code\counting.cpp instantiated from here : 129 C:\Dev-Cpp\include\c++\3.4.2\bits\stl_iterator_base_types.h no type : named `iterator_category' in `class std::vector<int, std::allocator<int> >' : 在stl_iterator_base_types.h的第129行是寫這樣的 : typedef typename _Iterator::iterator_category iterator_category; : 跟iterator有關的..看不太懂error message~~ C++ 和 template 有關的錯誤訊息真是不好懂呀! XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.130.208.168

220.141.56.156 07/29, , 1F
謝謝啦~~~...
220.141.56.156 07/29, 1F

61.70.137.117 07/29, , 2F
哈..話說我先前也看不出來為何會錯..原來是同名
61.70.137.117 07/29, 2F

61.70.137.117 07/29, , 3F
不過若是這種情況,不是應該先以引數型別完全相
61.70.137.117 07/29, 3F

61.70.137.117 07/29, , 4F
同的 non-template function match 到嗎??
61.70.137.117 07/29, 4F

61.70.137.117 07/29, , 5F
因為照說他們是在同一個 overloaded set 裡面吧
61.70.137.117 07/29, 5F

61.70.137.117 07/29, , 6F
不知道為何反而編譯器會選擇 Standard 版的呢??
61.70.137.117 07/29, 6F

59.115.76.234 08/06, , 7F
namespace不同....
59.115.76.234 08/06, 7F
文章代碼(AID): #12wFjaTB (C_and_CPP)
文章代碼(AID): #12wFjaTB (C_and_CPP)