爲什麼可以定義vector :: iterator映射到int,但是list :: iterator映射到int不能?vector <int> ::迭代器與列表<int> :: std :: map中的迭代器鍵
#include <vector>
#include <list>
#include <map>
#include <algorithm>
using namespace std;
int main()
{
int ia[] = {1,2,3,4,5,6,7,8,9,0};
vector<int> v(begin(ia), end(ia));
auto it1 = find(begin(v), end(v), 4);
map< vector<int>::const_iterator, int > m1;
m1.insert(map<vector<int>::const_iterator, int>::value_type(it1,*it1));
list<int> l(begin(ia), end(ia));
auto it2 = find(begin(l), end(l),5);
map< list<int>::const_iterator, int> m2;
m2.insert(map<list<int>::const_iterator, int>::value_type(it2,*it2)); //doesn't compile
}
錯誤1錯誤C2678:二進制 '<':沒有操作員發現這需要類型的左邊的操作數 '常量性病:: _ List_const_iterator < _Mylist>'(或沒有可接受轉換)
什麼是錯誤? – Useless
錯誤錯誤C2678:二進制'<':沒有找到操作符,它需要類型'const std :: _ List_const_iterator <_Mylist>'的左手操作數(或沒有可接受的轉換) – hhbilly
這應該是在問題中我已經添加了它)。出於興趣,是在'm2.insert'行還是m2的_declaration_? – Useless