【发布时间】:2014-11-22 11:03:54
【问题描述】:
很抱歉,如果标题描述性不够好,我很难弄清楚如何命名这个问题。这几乎是我第一次需要使用集合,尽管我一直在使用地图。
我不认为这是可能的,但我需要问。当我将结构添加到我的 std::set 时,我想对它执行特定操作,但前提是相等性为真。
例如,我可以使用一个列表,然后使用 sort() 和 unique() 列表。在我的谓词中,我可以随心所欲,因为如果 2 个值相等,我将得到结果。
下面是我的列表谓词的简单示例:
bool markovWeightOrdering (unique_ptr<Word>& w1, unique_ptr<Word>& w2) {
if (w1->word_ == w2->word_) {
w1->weight_++;
return true;
}
return false;
}
有没有人知道如何获得类似的结果,同时使用 std::set 来明显提高性能(和简单性),因为我的容器无论如何都需要是唯一的?感谢您的任何帮助或指导,非常感谢。
【问题讨论】:
标签: c++ c++11 set comparator predicate