忘川睡着了zZ 2023-03-01 13:30 采纳率: 66.7%
浏览 14

往elementmap里面存数据就会报错


#include <iostream>
#include <vector>
#include <map>
#include <list>
using namespace std;

class V
{
    public:
        int value;
        V* head;
        V()
        {
            this->value=0;
            head=this;
        }
};
class unionfindset
{
    public:
    map<V,vector<V>>*elementmap;
    map<vector<V>,vector<V>>*fathermap;
    map<vector<V>,int>*sizemap;
    unionfindset(list<V> list1)
    {
        elementmap=new map<V,vector<V>>();
        fathermap=new map<vector<V>,vector<V>>();
        sizemap=new map<vector<V>,int>();
        for(V value:  list1)
        {
            vector<V>element=vector<V>{value};
            elementmap->insert(make_pair(value,element));
        }
    }
    
};
int main(int argc, char** argv)
{
    V v ;
    list<V>l ;
    l.push_back(v);
    unionfindset u(l);
    return 0;
}
  • 写回答

1条回答 默认 最新

  • Web Security Loop 2023-03-01 13:56
    关注

    你怎么报错的?是这样吗?

    /usr/include/c++/7/bits/stl_pair.h:169:11: error: no matching function for call to ‘std::pair<V, std::vector<V> >::pair(V&, std::vector<V>&)’
      first(std::forward<_Args1>(__args1)...), second(std::forward<_Args2>(__args2)...) { }
    

    这是因为在map插入元素时,键类型和值类型不匹配引起的。
    你把这个代码

    elementmap->insert(make_pair(value,element));
    
    
    

    替换成

    elementmap->insert(make_pair<V,vector<V>>(value,element));
    
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 3月1日

悬赏问题

  • ¥15 这个如何解决详细步骤
  • ¥15 在微信h5支付申请中,别人给钱就能用我的软件,这个的所属行业是啥?
  • ¥30 靶向捕获探针设计软件包
  • ¥15 别人给钱就能用我的软件,这个的经营场景是啥?
  • ¥15 react-diff-viewer组件,如何解决数据量过大卡顿问题
  • ¥20 遥感植被物候指数空间分布图制作
  • ¥15 安装了xlrd库但是import不了…
  • ¥20 Github上传代码没有contribution和activity记录
  • ¥20 SNETCracker
  • ¥15 数学建模大赛交通流量控制