一位資深競爭性程序員給你推薦的5大優秀競爭性編程的C ++庫
C ++是競爭性編程中最推薦的語言之一。因為他處理速度之快,可用的庫之多等等。
C ++ STL包含許多用于不同目的的容器。在本文中,我們將從競爭性編程和面試準備的角度重點介紹最重要的容器。

1.vector:動態大小的數組,允許在不關心數組大小的情況下進行插入和刪除。它還具有純數組的優點,例如隨機訪問和緩存友好性。C ++向量支持許多其他操作,例如: ease(), push_front(), insert()等。
2.queue :在我們希望具有FIFO項順序的情況下很有用。實施例的問題是,產生具有給定的位數,第一非重復字符流中的, 樹的層次序遍歷和其變型中,圖的BFS和其變體。
3.set和map:這兩個都實現自平衡二進制搜索樹(特別是紅黑樹)。在我們希望通過中等(比數組更好,比哈希更差)搜索,插入和刪除查詢時間來維護排序項目的情況下很有用。例如問題是,在左邊最近的較大的或相同的值,查找最接近的值在每ARRA元素Y,等等。
4.unordered_set和unordered_map:兩者都通過鏈接實現散列。當我們希望快速搜索,插入和刪除時很有用(所有三個操作均為O(1))。這是業界最常用的數據結構之一,也是學術界最低估的數據結構。
5.priority_queue:默認情況下實現最大堆。我們也可以創建最小堆。只要我們希望有效地找到最小或最大元素,就使用它。它是用來實現流行的算法,如Prim算法, Dijkstra的最短路徑,霍夫曼編碼等等。