我想使用STL列表中的迭代器作爲映射中的鍵。例如:爲列表迭代器映射定義<運算符
using namespace std;
list<int> l
;
map<list<int>::const_iterator, int> t;
int main(int argv, char * argc) {
l.push_back(1);
t[l.begin()] = 5;
}
然而,列表迭代沒有定義(與隨機訪問迭代)比較運算符,所以編譯一個錯誤上面的代碼的結果:
的/ usr /包括/ C++ /4.2.1/bits/stl_function.h:227:錯誤:沒有對應於「__X < __y」
如果列表變更爲矢量「操作<」,地圖矢量const_iterators的編譯罰款。
爲list :: const_iterator定義運算符<的正確方法是什麼?
爲了什麼?你在那裏有一個奇怪的裝置。 :) – GManNickG 2010-03-29 04:52:29
以上是最小的,有點毫無意義的例子,但在我的真實程序中,我有一個std ::對象列表(這是一個列表,因爲我需要能夠快速從中間刪除元素),並且我正在構建一些其他數據結構需要指向該列表中的不同點。 – 2010-03-29 05:00:18