我有一张地图
map < double, multimap < int, class * >> N;
typedef list <class *> classList;
classList *L;
我希望class *
从map <double, multimap < int, class*>>
转到列表L;
map < double, multimap < int, class* > :: iterator Mit;
multimap < int, class* > :: iterator mmit;
for ( Mit = N.begin(); Mit != N.end(); Mit++) {
for (mmit = Mit->second.begin(); mmit != Mit->second.end(); mmit++){
//HERE
}}
这将编译并运行。但我无法将两个class *
设置为相等。
我收到编译错误:
L.insert(mmit->second);
error: no matching function for call to 'std::list<Class *> :: insert (Class*&)'
如果我把L.insert(mmit->second);
放在//这里,我得到这个编译错误。
error: no matching function for call to 'std::list<Class *> :: insert (Class*&)
答案 0 :(得分:1)
没有std::list::insert
重载需要一个参数。将元素添加到列表的最简单方法是push_back
或push_front
。
L->push_back(mmit->second);
注意:你的问题是L
是一个指针,所以我在这里使用指针取消引用。