簡體   English   中英

指定元素之間的相等性以在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都是基於哈希表的,而不是像傳統容器那樣基於紅黑樹的哈希表。 這樣可以非常快速,恆定地查找較大的數據集。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM