加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 调试地图插入?

发布时间:2020-12-16 09:37:48 所属栏目:百科 来源:网络整理
导读:我在向Map插入条目时遇到问题. #include stdio.h#include vector#include stack#include mapusing namespace std;class Nodo{public: vectorNodo Relaciones; int Valor; bool Visitado; Nodo(int V) { Valor = V; Visitado = false; }};class Grafo{public:
我在向Map插入条目时遇到问题.

#include <stdio.h>
#include <vector>
#include <stack>
#include <map>

using namespace std;

class Nodo
{
public:
    vector<Nodo> Relaciones;
    int Valor;
    bool Visitado;

    Nodo(int V)
    {
        Valor = V;
        Visitado = false;
    }
};

class Grafo
{
public:
    Nodo *Raiz;
    map<int,Nodo> Nodos;

    Grafo(int V)
    {
        Raiz = new Nodo(V);
        //Getting http://msdn.microsoft.com/en-us/library/s5b150wd(v=VS.100).aspx here
        Nodos.insert(pair<int,Nodo>(V,Raiz));
    }
};

解决方法

您的类型不匹配.您正在将Nodo *传递给对构造函数,而它需要一个Nodo对象.

你声明:

Nodo *Raiz;

然后你试着打电话:

pair<int,Raiz)

期望int和Nodo.但是你把它传给了int和Nodo *.

你可能想要的是这个:

class Grafo
{
    public:
        Nodo *Raiz;
        map<int,Nodo*> Nodos;    //  change to pointer

        Grafo(int V)
        {
            Raiz = new Nodo(V);
            //Getting http://msdn.microsoft.com/en-us/library/s5b150wd(v=VS.100).aspx here
            Nodos.insert(pair<int,Nodo*>(V,Raiz));   // change to pointer
        }
};

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读