c multimap 插入順序不同而導致operator 不同結果?

時間 2021-06-01 22:09:52

1樓:夏洋

『是否合理』這是個見仁見智的問題。事實上,標準庫也提供了另一種滿足題主需求的容器:std::unordered_multimap。

在我看來,multimap這麼做的根本原因還是出於效率考慮。用concept的角度來說,。這意味著,如果要判斷『一堆value所構成的集合是否相等』,唯一的方法就是用類似std::

is_permutation這種O(n^2)的演算法來處理。事實上unordered_multimap的內部實現通常就是這麼幹的(例:gcc實現,MSVC實現),它對value也沒有Hashable的要求,只對key有。

考慮到unordered_multimap名字裡帶個unordered,比較時消除順序差異非常合理。但對於multimap來說呢?既然有unordered版,multimap自己就隱含著是ordered的意思。

那麼這個ordered到底是僅在key上限定,還是在整個key-value pair上限定呢?標準的定義是後者,我覺得也無可厚非(畢竟也給你unordered的版本用了)。通常會理解成前者是因為這兩種情況對於一般的map來說是等價的,但對multimap就不一樣了。

資料結構中,順序表的插入操作,為什麼方法要用指標,直接操作struct不可以嗎?

孫磊 用指標就是 insert list 不用指標就是 list a insert list 之後用a就可以了,注意釋放指標 效率較低罷了 人民萬歲 隨便一本c語言書上,都介紹了形式引數和實際引數。裡面肯定有幾個好例子,其中涉及到了指標,建議你看看。你的疑惑,也就來自於你對這一塊知識點沒搞懂。直接用...

MBTI INTP 八維功能順序不同會對個人造成什麼樣細微的影響?

測試結果和標準型別功能順序不同大概率是因為測試時的狀態影響,兩種解釋 1.測試時受到某種情緒或某種主義感染 2.同種型別發展階段不同功能使用頻率不同。兩種情況會相互影響,可以長間隔多次測試觀察區別,並且通過研究八維功能了解自身情況。另附INTP發展階段表現鏈結,也許對你有幫助。 凌如汐何 功能順序與...

兩種不同的被子疊加的順序不同,會造成保暖效果不同嗎?

水星家紡小站 明明是床上的事兒,愣是編入了物理學的目錄,害的小水一番好找呀 被子的保暖性主要取決於兩個因素 纖維本身的導熱係數 纖維說白了就是做成被子的料子,比如棉被就是棉纖維紡成的 導熱係數說白了就是物體散熱的快慢,導熱係數越小,熱量流失得就越慢,保暖效果就越好 以下給出幾種常見的纖維的導熱係數 ...