忘川睡着了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日

悬赏问题

  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥20 java在应用程序里获取不到扬声器设备