Re: 請問一個關於iterator的問題...
看板C_and_CPP (C/C++)作者khoguan (Khoguan Phuann)時間19年前 (2005/07/28 23:36)推噓3(3推 0噓 4→)留言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
61.70.137.117 07/29, 4F
→
61.70.137.117 07/29, , 5F
61.70.137.117 07/29, 5F
→
61.70.137.117 07/29, , 6F
61.70.137.117 07/29, 6F
推
59.115.76.234 08/06, , 7F
59.115.76.234 08/06, 7F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章
-4
30