我是靠谱客的博主 彪壮故事,这篇文章主要介绍C2280 “std::_Uhash_compare<_Kty,_Hasher,_Keyeq>......尝试引用已删除的函数,现在分享给大家,希望可以做个参考。
错误 C2280 “std::_Uhash_compare<_Kty,_Hasher,_Keyeq>::_Uhash_compare(const std::_Uhash_compare<_Kty,_Hasher,_Keyeq> &)”: 尝试引用已删除的函数
报这个错误有可能是因为使用容器时没有自定义比较函数和哈希函数,可参考以下方法解决问题:
#include <iostream>
#include <string>
#include <unordered_set>
namespace {
class Student
{
public:
std::string name;
std::string id;
public:
bool operator ==(const Student& other) const
{
return this->name == other.name && this->id == other.id;
}
bool operator()(const Student& _Left, const Student& _Right) const
{
return _Left == _Right;
}
};
static size_t myHash(const Student& self) noexcept
{
static std::hash<std::string> hash_str;
return hash_str(self.name);
}
}
int main()
{
std::unordered_set<Student, decltype(&myHash)> unordered_setVec;
unordered_setVec.insert(Student());
return 0;
}
最后
以上就是彪壮故事最近收集整理的关于C2280 “std::_Uhash_compare<_Kty,_Hasher,_Keyeq>......尝试引用已删除的函数的全部内容,更多相关C2280内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复