我遇到了set :: find不是找到對象的正確方法,因爲我以不同的方式(通過std :: find_if)找到對象,而不是它在集合中的順序。我還沒有找到任何關於如何找到元素的複雜信息。我假設它是線性的,因爲遍歷一個「無序」容器來查找匹配是線性的。Find_if是否爲線性集?
1
A
回答
2
您可以看看here並查看find_if的複雜性是線性的。
這是因爲find_if是一種廣義算法,它不知道它使用的某種類型的容器。所以它不能使用不同容器的特性來增強搜索過程,只是檢查所有元素以找到合適的元素。
1
是的,它的複雜性是線性的。
迭代器參數是一個InputIterator,它是單向的。唯一可以想象的實現是遍歷每個元素並檢查謂詞。由於謂詞是任意的,因此不可能將算法專用於不同的容器類型,以提高算法的複雜性。
3
相關問題
- 1. 用C++編譯錯誤 - 「find_if」不是「性病」
- 2. 給定一個函數,它是否是線性的,爲什麼?
- 3. C++ find_if功能:
- 4. Find_if奇怪值
- 5. find_if()與模板?
- 6. 什麼是錯與此的std :: find_if
- 7. 找出數據是否線性可分
- 8. 雙線性濾波是否可逆?
- 9. hbase是否真的線性縮放?
- 10. 將函數轉換爲find_if lambda
- 11. C++,find_if不工作
- 12. SignalR - 顯示集線器是否在線msg
- 13. 檢查vb.net數據集是否爲空
- 14. 檢查收集是否爲空
- 15. 如何確定集合是否爲空
- 16. STL是否爲空()線程安全?
- 17. 向量中的Find_if函數
- 18. find_if與bind2nd和函子
- 19. find_if功能建設問題
- 20. 是否存在一種算法將線性語法權轉換爲線性語法左?
- 21. 字符串屬性本身是否是線程安全的?
- 22. 檢查屬性是否存在與檢查是否爲空
- 23. 確定對象屬性是否爲空
- 24. XSD - 驗證屬性值是否爲
- 25. 限制資源屬性是否爲RESTful?
- 26. select()行爲是否具有可寫性?
- 27. 檢查對象屬性值是否爲
- 28. 檢查CoreData屬性是否爲空
- 29. 檢測_是否爲下劃線或下劃線
- 30. iPhone:如何確定線程是否爲主線程?