В текущем проекте я программирую на C ++ и довольно часто использую карту классов STL, набор и список. Теперь мне интересно, есть ли способ очистить некоторый код с помощью внутренних типов данных. Например:
std::map<uint64_t, std::list<int32_t> > mymap;
// add something to the map
for (std::map<uint64_t, std::list<int32_t> >::const_iterator it = mymap.begin (); it != mymap.end (); it++) {
// iterate here
}
Мой вопрос: могу ли я заменить std::map<uint64_t, std::list<int32_t> >::const_iterator
например? на mymap.const_iterator
, но это не компилируется. Цитировать g ++ здесь:
error: invalid use of ‘std::map<long long unsigned int, std::list<int, std::allocator<int> >, std::less<long long unsigned int>, std::allocator<std::pair<const long long unsigned int, std::list<int, std::allocator<int> > > > >::const_iterator’
Есть идеи, как это сделать? Или это невозможно?