在std::unordered_set
中,我們提供了一個謂詞來表示兩個對象A和B是否相等。我的問題是,假設我們需要O(k)
時間來確定A和B是否相等。 unordered_set::find
是否仍然採用攤銷的固定時間或是否需要攤銷O(k)
時間?std :: unordered_set是否爲任何對象提供分期不變的查詢時間而不考慮謂詞?
0
A
回答
0
僅由std::unordered_map
保證的平均不變查詢複雜度指的是地圖中元素的數量。如果該映射至少包含一個具有相同散列值*的元素,則必須至少執行一次該鍵的完整比較。如果這個比較是O(k),那麼顯然這個查找也變成了O(k),但是這隻適用於相當大的k。
*)我猜在大多數實現中它不僅僅是相同的哈希,而是如果在同一個桶中有一個元素。
+0
這不是攤銷常數,它是平均情況不變。區別有點微妙但很重要。 –
+0
@ T.C。 :謝謝,修正 – MikeMB
相關問題
- 1. 查詢日期時間字段而不考慮T-SQL中的時間
- 2. 根據db的日期提取結果,而不考慮時間
- 3. 何時使用std :: unordered_set而不是std :: set?
- 4. Typeof考慮類而不是變量
- 5. Sybase- SQL查詢,其中日期在最近x天不考慮時間部分
- 6. Python日期時間和tzinfo對象(改變分鐘而不是幾小時)
- 7. 加入日期SQLalchemy考慮只有日期而不是一天中的時間
- 8. 如何比較當前日期的任何日期,不考慮今年考慮
- 9. 參考變量,而不是對象
- 10. Dictionary對象不會謂詞
- 11. 查詢日期時間範圍,同時考慮到時區
- 12. std :: unordered_set insert獲取對象
- 13. Wy是不考慮可變/引用對象的泡菜?
- 14. 排序NSDate不考慮當天的時間 - 只是日期
- 15. wbem查詢是否對結果順序提供任何保證?
- 16. 如何unix時間戳轉換爲JavaScript日期對象(考慮時區)
- 17. Solr的dateRangeField獲取確切的數據只考慮日期,不考慮時間
- 18. 爲什麼std :: unordered_set的std :: hash函數不區分大小寫?
- 19. 獲取另一個時區的日期時間,而不考慮當地時區
- 20. 如何顯示PST時間,而不考慮用戶的位置?
- 21. 謂詞和不同的對象
- 22. 如果分區列不在Where謂詞中,查詢優化是否失敗?
- 23. 查詢日期而不是日期時間docdb
- 24. Oracle查詢按時(而不是日期)
- 25. Freebase是否支持間接或謂詞對象?
- 26. 空值不考慮在插入查詢
- 27. PHP RIGHT JOIN查詢不考慮null?
- 28. 如何計算相對時間,而不考慮客戶端日期時間設置
- 29. 謂詞設置而不是刪除
- 30. 提取下三角矩陣,而不考慮對角元素
O(k)命中。它必須至少做一次完整的比較。 – MikeMB