鱼C论坛

 找回密码
 立即注册
查看: 873|回复: 0

求助,关于图的结构,应该怎么改,出现错误

[复制链接]
发表于 2022-1-28 16:41:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 dcc_and_cx 于 2022-1-29 14:51 编辑
  1. #include<iostream>
  2. using namespace std;
  3. #include<unordered_map>

  4. #include<vector>
  5. #include<unordered_set>

  6. class edge;
  7. class Node
  8. {
  9. public:
  10.         int value;  //点的值
  11.         int in;                //入度
  12.         int out;        //出度
  13.         vector<Node> *nexts;    //邻接点集
  14.         vector<edge> *edges;        //邻接边集
  15.         Node(int value)
  16.         {
  17.                 this->value = value;
  18.                 this->in = 0;
  19.                 this->out = 0;
  20.                 this->nexts = new vector<Node>();
  21.                 this->edges = new vector<edge>();
  22.         }
  23.        
  24.         Node()
  25.         {

  26.         }

  27. };
  28. class edge    //边
  29. {
  30. public:
  31.         int weight;  //权重
  32.         Node from;   //起始点
  33.         Node to;        //终点
  34.         edge(int w, Node f, Node t)
  35.         {
  36.                 weight = w;
  37.                 from = f;
  38.                 to = t;
  39.         }
  40. };
  41. class Graphy  //图
  42. {
  43. public:
  44.         unordered_map<int,Node> *nodes;  //点集
  45.         unordered_set<edge> *Edges;     //边集
  46.         Graphy()
  47.         {
  48.                 nodes=new unordered_map<int,Node>();  
  49.                 Edges = new unordered_set<edge>();
  50.         }
  51. };
  52. int main()
  53. {
  54.        
  55.        
  56.        
  57. }
复制代码

出现的问题:
图的转化.cpp
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include\unordered_set(50,99): error C2280: “std::_Uhash_compare<_Kty,_Hasher,_Keyeq>::_Uhash_compare(const std::_Uhash_compare<_Kty,_Hasher,_Keyeq> &)”: 尝试引用已删除的函数
1>        with
1>        [
1>            _Kty=edge,
1>            _Hasher=std::hash<edge>,
1>            _Keyeq=std::equal_to<edge>
1>        ]
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include\xhash(168): message : 编译器已在此处生成“std::_Uhash_compare<_Kty,_Hasher,_Keyeq>::_Uhash_compare”
1>        with
1>        [
1>            _Kty=edge,
1>            _Hasher=std::hash<edge>,
1>            _Keyeq=std::equal_to<edge>
1>        ]
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include\xhash(168,1): message : “std::_Uhash_compare<_Kty,_Hasher,_Keyeq>::_Uhash_compare(const std::_Uhash_compare<_Kty,_Hasher,_Keyeq> &)”: 由于 数据成员 调用已删除或不可访问的函数“std::_Compressed_pair<_Hasher,std::_Compressed_pair<_Keyeq,float,true>,true>::_Compressed_pair(const std::_Compressed_pair<_Hasher,std::_Compressed_pair<_Keyeq,float,true>,true> &)”,因此已隐式删除函数
1>        with
1>        [
1>            _Kty=edge,
1>            _Hasher=std::hash<edge>,
1>            _Keyeq=std::equal_to<edge>
1>        ]
1>        and
1>        [
1>            _Hasher=std::hash<edge>,
1>            _Keyeq=std::equal_to<edge>
1>        ]
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include\xmemory(1404,1): message : “std::_Compressed_pair<_Hasher,std::_Compressed_pair<_Keyeq,float,true>,true>::_Compressed_pair(const std::_Compressed_pair<_Hasher,std::_Compressed_pair<_Keyeq,float,true>,true> &)”: 由于 基类 调用已删除或不可访问的函数“std::hash<edge>::hash(const std::hash<edge> &)”,因此已隐式删除函数
1>        with
1>        [
1>            _Hasher=std::hash<edge>,
1>            _Keyeq=std::equal_to<edge>
1>        ]
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include\type_traits(2256,1): message : “std::hash<edge>::hash(const std::hash<edge> &)”: 由于 基类 调用已删除或不可访问的函数“std::_Conditionally_enabled_hash<_Kty,false>::_Conditionally_enabled_hash(const std::_Conditionally_enabled_hash<_Kty,false> &)”,因此已隐式删除函数
1>        with
1>        [
1>            _Kty=edge
1>        ]
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include\type_traits(2241,5): message : “std::_Conditionally_enabled_hash<_Kty,false>::_Conditionally_enabled_hash(const std::_Conditionally_enabled_hash<_Kty,false> &)”: 已隐式删除函数
1>        with
1>        [
1>            _Kty=edge
1>        ]
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include\unordered_set(50): message : 在编译 类 模板 成员函数“std::_Uset_traits<_Kty,std::_Uhash_compare<_Kty,_Hasher,_Keyeq>,_Alloc,false>::_Uset_traits(const _Tr &) noexcept(false)”时
1>        with
1>        [
1>            _Kty=edge,
1>            _Hasher=std::hash<edge>,
1>            _Keyeq=std::equal_to<edge>,
1>            _Alloc=std::allocator<edge>,
1>            _Tr=std::_Uhash_compare<edge,std::hash<edge>,std::equal_to<edge>>
1>        ]
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include\xhash(368): message : 查看对正在编译的函数 模板 实例化“std::_Uset_traits<_Kty,std::_Uhash_compare<_Kty,_Hasher,_Keyeq>,_Alloc,false>::_Uset_traits(const _Tr &) noexcept(false)”的引用
1>        with
1>        [
1>            _Kty=edge,
1>            _Hasher=std::hash<edge>,
1>            _Keyeq=std::equal_to<edge>,
1>            _Alloc=std::allocator<edge>,
1>            _Tr=std::_Uhash_compare<edge,std::hash<edge>,std::equal_to<edge>>
1>        ]
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include\xhash(327): message : 查看对正在编译的 类 模板 实例化“std::_Uset_traits<_Kty,std::_Uhash_compare<_Kty,_Hasher,_Keyeq>,_Alloc,false>”的引用
1>        with
1>        [
1>            _Kty=edge,
1>            _Hasher=std::hash<edge>,
1>            _Keyeq=std::equal_to<edge>,
1>            _Alloc=std::allocator<edge>
1>        ]
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include\unordered_set(65): message : 查看对正在编译的 类 模板 实例化“std::_Hash<std::_Uset_traits<_Kty,std::_Uhash_compare<_Kty,_Hasher,_Keyeq>,_Alloc,false>>”的引用
1>        with
1>        [
1>            _Kty=edge,
1>            _Hasher=std::hash<edge>,
1>            _Keyeq=std::equal_to<edge>,
1>            _Alloc=std::allocator<edge>
1>        ]
1>F:\图的转化\图的转化.cpp(53): message : 查看对正在编译的 类 模板 实例化“std::unordered_set<edge,std::hash<edge>,std::equal_to<edge>,std::allocator<edge>>”的引用
1>已完成生成项目“图的转化.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-22 19:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表