I am getting this error while trying to iterate over a map and its list member:
error: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' used without template parameters
invalid use of qualified-name '<declaration error>::ii'
error: 'ii' was not declared in this scope
error: 'struct std::_Rb_tree_iterator<std::pair<const int, std::list<int, std::allocator<int> > > >' has no member named 'second'
error: 'struct std::_Rb_tree_iterator<std::pair<const int, std::list<int, std::allocator<int> > > >' has no member named 'second'
This is the code (the map is correctly populated before):
map<int, list<int> >::iterator it;
list<int>iterator:: ii;
for(it=this->mapName.begin(); it!=this->mapName.end(); ++it){
cout<<(*it).first<<" { ";
for(ii = (*it).second().begin(); ii!=(*it).second.end(); ++ii){
cout<<(*ii)<<" ";
}
cout << " }" << endl;
}
Any advices?
You have a syntax error here:
list<int>iterator::
should be
list<int>::iterator
Also,
(*it).second().begin()
should be
(*it).second.begin()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With