|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 dcc_and_cx 于 2022-1-29 14:51 编辑 #include<iostream>
using namespace std;
#include<unordered_map>
#include<vector>
#include<unordered_set>
class edge;
class Node
{
public:
int value; //点的值
int in; //入度
int out; //出度
vector<Node> *nexts; //邻接点集
vector<edge> *edges; //邻接边集
Node(int value)
{
this->value = value;
this->in = 0;
this->out = 0;
this->nexts = new vector<Node>();
this->edges = new vector<edge>();
}
Node()
{
}
};
class edge //边
{
public:
int weight; //权重
Node from; //起始点
Node to; //终点
edge(int w, Node f, Node t)
{
weight = w;
from = f;
to = t;
}
};
class Graphy //图
{
public:
unordered_map<int,Node> *nodes; //点集
unordered_set<edge> *Edges; //边集
Graphy()
{
nodes=new unordered_map<int,Node>();
Edges = new unordered_set<edge>();
}
};
int main()
{
}
出现的问题:
图的转化.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 个 ==========
|
|