以下程序不会编译一组无序的整数对,但它会对整数进行编译. 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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。