我想在项目中使用unordered_set
。
但是,它的文档要么不完整,要么只是技术参考,没有例子。
任何人都可以提供与其相关的在线资源的链接吗?书籍也欢迎,最好免费。谷歌搜索没有带来任何价值。
谢谢!
答案 0 :(得分:9)
最常见用例的代码:
#include <boost/unordered_set.hpp>
using boost::unordered_set;
using std::string;
using std::cout;
using std::endl;
int main (void)
{
// Initialize set
unordered_set<string> s;
s.insert("red");
s.insert("green");
s.insert("blue");
// Search for membership
if(s.find("red") != s.end())
cout << "found red" << endl;
if(s.find("purple") != s.end())
cout << "found purple" << endl;
if(s.find("blue") != s.end())
cout << "found blue" << endl;
return 0;
}
<强>输出强>
found red
found blue
更多信息
http://www.cplusplus.com/reference/unordered_set/unordered_set/find/
答案 1 :(得分:7)
关于它的文档很少,因为它的行为与std::set
完全相同,只是它需要散列和等于函数而不是比较函数。只需查看std::set
的示例,并将其替换为std::unordered_set
即可。您应该没问题。
如果您需要编写散列函数,文档中有一些示例,即this one。
答案 2 :(得分:4)
boost容器实际上是由C ++标准库技术报告(称为TR1)首先指定的接口的实现,如boost文档中所述。它们似乎现在已成为新标准工作草案的一部分。如果您搜索tr1和unordered_set,Google会提供更多文档/示例。我喜欢MSDN参考,它也有一些样本:
答案 3 :(得分:2)
我会尝试使用您在std::set
或其他容器上使用的相同访问方法,http://www.boost.org/doc/libs/1_37_0/doc/html/unordered.html似乎同意。