在C++中,std :: set :: insert()只在沒有一個值爲'value'的情況下插入一個值。同樣,這是否意味着運算符==或者是否意味着運算符<對於任一次排序都是錯誤的,還是意味着其他什麼?對於std :: set,相同的「值」是什麼意思?
3
A
回答
5
是否表示運算符<對於任一次排序都爲false?
是的,如果該組使用默認比較器並使用<
比較鍵。更一般地,在具有比較器Compare
的有序容器中,兩個鍵和k2
被認爲是等效的如果是!Compare(k1,k2) && !Compare(k2,k1)
。
密鑰不需要實現operator==
或其他任何東西;他們只需要使用容器的比較器進行比較即可獲得strict weak ordering。
2
1
set
被允許在T
上執行的唯一比較是通過它作爲模板的一部分進行比較的仿函數類型。因此,這就是它如何定義等價性。
對於set
中的每個值,對於該值與新值之間的兩個排序之一,比較必須評估爲true。如果它對於任何值都是錯誤的,那麼它將不被存儲。
+2
這意味着浮點'NaN'不能成爲'set
相關問題
- 1. $ {VARIABLE + set}是什麼意思?
- 2. _mm_set_epi8 - 「set」是什麼意思?
- 3. STLPORT:namespace std {}是什麼意思?
- 4. 是什麼意思:'std :: ios_base&(* f)(std :: ios_base&))'
- 5. 「二元相同」是什麼意思?
- 6. Set <element>是什麼意思?
- 7. 「set working_dir =%cd%」是什麼意思?
- 8. 「set - $ VARIABLE」在bash中是什麼意思?
- 9. 在Scheme中,「set!」是什麼意思?
- 10. 是什麼意思:是什麼意思?
- 11. 同步是什麼意思?
- 12. 對於暱稱,「ContactsContract.CommonDataKinds.Nickname.CONTENT_ITEM_TYPE」是什麼意思?
- 13. get_ident()返回相同的值是什麼意思?
- 14. 這個std :: ostream相關的堆棧跟蹤是什麼意思?
- 15. .bss中的ELF重定位是什麼,但相對於.bss,是什麼意思?
- 16. SURF的min_dist和max_dist是什麼意思,FlannMatcher是什麼意思
- 17. &**是什麼意思?
- 18. 這意味着兩個相同的類是什麼意思?
- 19. /([^.]*)\.(.*)/是什麼意思?
- 20. 什麼意思是「相對」,「和‘風格’的意思是在這裏嗎?
- 21. 圖像的相位是什麼意思?
- 22. + =是什麼意思?
- 23. 是什麼意思?:是的
- 24. || =是什麼意思?
- 25. :這是什麼意思?
- 26. 返回值C++是什麼意思?
- 27. LL是什麼意思?
- 28. 什麼是std :: _ Bind <std :: _ Mem_fn <void(ClassName :: *)()>(ClassName *)>是什麼意思? (C++)
- 29. obj.yview()中的值是什麼意思?
- 30. Appstats的值是什麼意思?
關鍵概念:「嚴格的弱排序」 – Nemo