地图&lt; double,multimap <int,class =“”* =“”> = list <class * =“”> * L.

时间:2015-09-19 07:22:42

标签: c++ maps

我有一张地图  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*&)

1 个答案:

答案 0 :(得分:1)

没有std::list::insert重载需要一个参数。将元素添加到列表的最简单方法是push_backpush_front

L->push_back(mmit->second);

注意:你的问题是L是一个指针,所以我在这里使用指针取消引用。