忘川睡着了zZ 2023-03-01 11:25 采纳率: 66.7%
浏览 19
已结题

申请堆内存是赋值不行吗,还有往map里存储时会出错,求告知


#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=*(new vector<V>(value));
            elementmap->insert(make_pair(value,*element));
        }
    }
    
};
int main(int argc, char** argv)
{
    
    return 0;
}
  • 写回答

1条回答 默认 最新

  • CodeBytes 2023-03-01 11:53
    关注

    该回答引用ChatGPT

    申请堆内存时需要使用 new 关键字进行动态分配,然后再将指针赋值给相应的变量。例如,elementmap 变量应该是 map<V,vector>* 类型的指针,因此在构造函数中应该使用 new 关键字进行动态分配:

    elementmap = new map<V,vector<V>>();
    
    

    在 elementmap->insert(make_pair(value,*element)) 这一行代码中,make_pair 的第二个参数应该是一个 vector 类型的变量,而不是指针。应该将该行代码改为:

    vector<V> element = vector<V>({value});
    elementmap->insert(make_pair(value, element));
    
    

    改动后的 unionfindset 类的构造函数如下:

    
    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));
        }
    }
    
    

    希望这可以帮助到你

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月17日
  • 已采纳回答 3月9日
  • 创建了问题 3月1日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度