[英]passing more data to std:set Comparison class
我有一個帶有Compare類的std :: set,它需要額外的參數來比較鍵。 此變量參數在運行時確定,我將其打包在集合的密鑰內,以使其可供比較使用。
但是,該參數在邏輯上屬於集合而不是鍵,因此該解決方案看起來很笨拙並且在所有鍵上復制相同的值。
是否有一種優雅的方法可以將其他參數傳遞給Compare類? (我首先想到了set :: value_comp,但是當我需要引用時它會按值返回比較對象)。
謝謝。
std :: set的定義是:
template <
class Key,
class Traits=less<Key>,
class Allocator=allocator<Key>
>
class set
所以Traits應該是你的比較運算符,但是如果看一下構造函數,你可以再次看到它:
explicit set(
const Traits& _Comp
);
所以只需將您的實例傳遞給構造函數。 (注意它是通過復制完成的)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.