У меня есть карта со значениями std :: pair.
При попытке настроить итератор компилятор жалуется следующим образом, но я не могу понять, почему:
src / DBConnector.cpp: в функции-члене int DBConnector :: createGenericInsert (std :: string, std :: map, std :: pair>, std :: less>, std :: allocator, std :: pair>>>>, std :: string &) ': src / DBConnector.cpp: 354: ошибка: нет соответствия для' operator = 'в' l_oIterEnd = p_mapValues.std :: map <_Key, _Tp, _Compare, _Alloc> ::заканчивается _Key = std :: basic_string, _Tp = std :: pair>, _Compare = std :: less>, _Alloc = std :: allocator, std :: pair>>> '/usr/include/c++/4.4/bits/stl_map.h:251: примечание: кандидаты: std :: map <_Key, _Tp, _Compare, _Alloc> & std :: map <_Key, _Tp, _Compare, _Alloc> :: operator = (const std :: map <_Key, _Tp, _Compare, _Alloc> &) [с _Key = std :: basic_string, _Tp = std :: pair>, _Compare = std :: less>, _Alloc = std :: allocator, std :: pair>>>]
Моя функция такая:
int DBConnector::createGenericInsert ( std::string p_sTable , std::map<std::string , std::pair<int,std::string> > p_mapValues , std::string & po_sInsert ) {
std::map<std::string,std::pair<int,std::string> > l_oIter;
std::map<std::string,std::pair<int,std::string> > l_oIterEnd;
std::string s_Fieldnames;
l_oIterEnd = p_mapValues.end(); // This is line 354
l_oIter = p_mapValues.begin();
s_Fieldnames += l_oIter.first();
...
}
В чем здесь проблема?Может ли карта содержать std :: pair?(Кроме того, может ли карта содержать ключи разных типов?)