为在unordered_set中查找指定元素之间的相等性
specify equality between elements for find in unordered_set
我有一个类型Extended_Expression,我在无序集合中使用它,并且声明的等式如下:
bool ExtendedExpression::operator == (const ExtendedExpression & exp) const{ ... }
但是unordered_set的find运算符似乎不起作用,它似乎在使用另一种等式,比如内存地址。
指定要使用的相等运算符的最简单方法是什么?我是C++初学者,如果问题很明显,我很抱歉。
如果您希望unordered_set
按预期工作,则需要专门针对您的类型来设计std::hash
。例如,请参阅此处的答案https://stackoverflow.com/a/8157967/2558027.
所有新的无序容器,如unordered_map
,都是基于哈希表的,而不是像传统的容器那样基于红黑树。这允许对更大的数据集进行非常快速、恒定的时间查找。
相关文章:
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- 比较它们之间的元素并获取公共值的键
- 查找多个向量之间的公共元素(无整数元素)
- 常量映射和常量元素映射之间的区别
- r-在Rcpp和C++之间转换矢量(使用Rcpp::as或Rcpp:::wrap)是否会创建一个新的矢量并复制元素
- 使用折叠表达式打印每个元素之间的空格
- 如何计算大小为 1000 x 1000 的 2D 数组中 2 个元素之间的步幅?C++
- OpenCV 文件存储 - 错误:元素之间的解析错误 (icvYMLParseValue) 缺失
- 在查找子集中元素和元素数量之间的二进制比较背后的逻辑是什么?
- 使用动态创建的选项卡元素在C 和QML之间绑定
- C++11 在列表到映射(或其他容器)之间移动元素
- 从 1 中创建新的字符 * 作为参数,元素位于 2 个索引之间
- 如何在对一组中的一对之间找到一个元素
- C++ - 前两个元素之间的差异
- 字符串和向量<string>元素之间的区别
- 在两个std::向量之间匹配元素
- 如何删除给定索引之间的所有元素
- 当我删除数组时,指针在哪里?指向数组的指针与数组中的元素之间的区别
- 为什么指针减法会导致介于两者之间的元素数量
- 在给定某些约束的情况下,求出元素之间的最大距离