首頁 >後端開發 >C++ >我應該選擇哪個 C 11 標準庫容器?

我應該選擇哪個 C 11 標準庫容器?

DDD
DDD原創
2024-12-15 01:18:13760瀏覽

Which C  11 Standard Library Container Should I Choose?

選擇C 11 標準庫容器:綜合指南

在C 11 中選擇合適的容器對於高效的資料管理至關重要。與眾所周知的「C 容器選擇」備忘單不同,C 11 版本尚未建立。

但是,建立此類圖表可以透過遵循兩個原則來簡化:優先考慮語義和選擇當存在多個選項時最簡單的解決方案。僅在處理大型資料集時才應考慮效能因素。

關聯與簡單序列

容器分為兩種主要類型:關聯與簡單序列。

關聯容器

使用關聯容器:

  • 透過單一鍵輕鬆搜尋
  • 排序元素(有序關聯容器)

簡單序列容器

以下情況使用簡單序列容器:

  • 元素順序無關
  • 需要記憶體穩定性(固定記憶體位置)

逐步選擇處理

對於關聯容器

  • 已訂購?

    • 是:使用std::map 或std::set (基於鍵值分離)
    • 否:使用std::unordered_map 或std::unordered_set
  • 重複?

    • 是:使用 std::multimap 或std::multiset
    • 否:使用 std::map 或std::set

對於簡單序列容器

  • 記憶體穩定?

    • 是:使用 std::list
  • 動態調整大小?

    • 編譯時已知大小? :使用std::array
    • 大小未知? :繼續
  • 雙端?

    • 是:使用std::deque
    • 否:使用std::vector

預設選擇

在大多數情況下,除非存在關聯或特定要求,否則std::vector 是首選(Sutter 和Stroustrup 建議)。

以上是我應該選擇哪個 C 11 標準庫容器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn