STL學習心得

STL的知識翻來覆去,也就那麼回事,但是真的想要熟練使用,要下一番功夫。無論是算法,還是STL容器,直白的說就是套路,然而對於一道題,告訴你是STL容器的題,讓你套容器也絕非易事。 怎樣使用容器,對於容器的知識的延申,像結構體類型的容器,map[ ]的映射功能真的很好用,卻也難以想起。vector的下標讀取,priority_queue的線性結構,也是不能忽略的問題,雖然存儲結構的不是單調的,但是出隊時絕對是按照單調順序。
做着做着題,不得不去面臨一個讓人難受的問題,Run Time Error ,Limit memory Error. 題目開始瘋狂的壓縮時間,不得bu不去尋求更加簡單的解題方法。單純用模擬做題的時代就要過去了,取而代之的纔是一個學語言的真正世界。
常用容器的特點
1.map映射,通過key值找到value,宛如數學映射,x值對應y值,將兩個量通過map聯繫起來,不單單是簡單的排序。
2.set容器,常用功能就是排序,他的key與value相等,在有些條件用set會比用map要簡單。當set內裝有結構體時,可以按結構體內的一個成員排序。
3.vector 稱作不定長數組,因爲他不限定內存的大小,可以隨用隨開,而且可以像數組一樣用下標訪問。
4.優先隊列 可以按照自己定義的結構體的成員按着按照特定的規則排序,權值高者先出,重症病人插隊的情況類似。

1.二分查找功能(binary_search())
函數功能: 在數組中以二分法檢索的方式查找,若在數組(要求數組元素非遞減)中查找到indx元素則返回其下標,若查找不到則返回值爲假。
函數模板:binary_search(arr[], size , indx)
參數說明: arr[]: 數組首地址;
size: 數組元素個數;
indx: 需要查找的值。
2. lower_bound():
函數功能: 函數lower_bound()在first和last中的前閉後開區間進行二分查找,返回大於或等於val的第一個元素位置。如果所有元素都小於val,則返回last的位置
3.upper_bound():
函數功能:函數upper_bound()返回的在前閉後開區間查找的關鍵字的上界,返回大於val的第一個元素位置
lower_bound(val): 返回容器中第一個值【大於或等於】val的元素的iterator位置。
upper_bound(val): 返回容器中第一個值【大於】val的元素的iterator位置。

4.next_permutation();
prev_permutation();全排列

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章