如何在C中创建一组无序的整数?
作者:互联网
以下程序不会编译一组无序的整数对,但它会对整数进行编译. unordered_set及其成员函数可以用于用户定义的类型,我该如何定义它?
#include <unordered_set>
...
class A{
...
private:
std::unordered_set< std::pair<int, int> > u_edge_;
};
编译错误:
error: no matching function for call to ‘std::unordered_set >::unordered_set()’
解决方法:
您的代码在VS2010 SP1(VC10)上编译,但无法使用GCC g 4.7.2进行编译.
但是,您可能需要考虑从Boost.Functional的boost :: hash来散列std :: pair(使用此添加,您的代码也会使用g编译).
#include <unordered_set>
#include <boost/functional/hash.hpp>
class A
{
private:
std::unordered_set<
std::pair<int, int>,
boost::hash< std::pair<int, int> >
> u_edge_;
};
标签:unordered-set,std-pair,c 来源: https://codeday.me/bug/20190928/1827516.html