簡體   English   中英

將更多數據傳遞給std:set Comparison class

[英]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.

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