C STL裡面哪些是需要掌握的哪些是可選擇的?

時間 2021-05-06 09:33:00

1樓:

能懂,熟悉就夠了,不少說要那些掌握和不掌握,這是錯誤的,最好全部有大概了解,用的時候知道有這個東西,到時候去翻文件看demo就夠了。

2樓:紅糖Hometown

重點掌握的:

vector

list

mapunordered_map

各種常用的演算法(sort,reverse,remove_if等)需要了解設計細節的:

萃取技術(貫穿STL設計思想)

iterator(容器和演算法的粘合劑)

3樓:C十十20年

string和string_view排第一和第二,它們己經接近int的地位了,為何如此說呢?看它們是否有對應的常量。3預設是int型別的常量,"abc"s是string類的常量物件,"abc"sv是string_view類的常量物件。

可以用"abc"s. length( )求常量物件中存貯的字串的長度。我想不到STL中還有其它型別如list、tuple等還可以直接寫出常量物件的。

為何是否有常量如此重要?因為常量對應的型別是編譯必須支援的,否則編譯完全可以不支援。故string和string_view幾乎和int一樣,接近要成為標準型別了。

不過大家要注意STL這個名稱就有標準的含義,裡面的型別都是重要的,接近標準型別的。在C語言早期,int都不算保留字,可是C++現在算了,但string還不是C++的保留字,所以只能說string接近int的地位。保留字是乙個語言最重要的成份,參見《C++程式設計精要教程》。

4樓:Lambda

STL的學習過程大致如下:

首要先熟悉基本的容器vector、list、unordered_map/unordered_set、map/set等

然後要知道各個容器的方法的正確使用方法,比如vector盡量使用push_back新增元素,

知道方法的時間複雜度,哪些方法可能導致迭代器失效再去了解底層原始碼

5樓:

這個是對初學者寫的。程式設計師接觸不同的行業軟體,具體常用內容千差萬別。有的會用各種庫自帶的功能。

但對於初學者掌握這些基本足夠了。到時候用其他的也能舉一反三:

常用容器必須掌握:list vector map stack set常用演算法:find remove erase transform 等配合lambda表示式

差不多了就足夠了。

剩下的瀏覽瀏覽留個印象,用的時候再查即可。

6樓:血狼

對我個人而言,因為我需要解決程式執行時的coredump問題,所以,我會著重看每種容器在彙編裡的特徵。所以,我對每種容器的內部資料結構和在記憶體裡怎麼定址更關注一些。

反正,基於應用場景就行了。

7樓:

對於每乙隻容器,需要知道的:

API時空複雜度

具體的儲存開銷(資料項大小為 10 位元組、 100 位元組、 1k 、 1M 時的儲存 overhead )

坑( vector 、 hashtable rehash 、大括號初始化、迭代器失效,等等)

gdb 如何在沒有 pretty print 的情況下看 STL 容器內容(例如 _M_get 之類的內部函式)

演算法啥的就不用說了,自己看 API 掌握時空複雜度就行了。

別的都不用懂。

當代藝術的創作,需要掌握哪些技能?

liu 找主題,自己想表達什麼 找靈感,閱讀相關理論,作品 畫草圖,多畫幾個不同的 做在確定了草圖並完善後,做小稿,看看效果如何,小稿再進一步的完善,開始吧小稿放大,做成稿最後完善,完事兒 小藝匠 當代藝術 是 新聞 傳統藝術 是 電影 古典美術 現代藝術 後現代藝術 哪些是早就已經蓋棺定論的藝術形...

學習化工的需要熟練掌握哪些軟體?

看樓主的標籤,應該是想去設計院吧,如果是的話,贊同 奧巴牛 的回答,基礎知識最重要,軟體只是工具。先熟練掌握Unit Operation的原理,三傳一反,懂得PFD和PID。有時間的話,學習一下Aspen Hysys Aspen Hysys的介面和理念較好,功能也比Plus完善,當然它主要用在Oil...

程式設計師需要掌握哪些原則性的概念?

暗滅 1 順序,分支迴圈 2 抽象,解藕,復用 3 需求,設計,測試 4 敏捷,MVP,迭代 5 溝通,確認,進度 6 撕逼,燒烤,團建 雲龍 原則就是既然靠技術吃飯,就要把技術做的好一些,精一些,秀一些,與時俱進。看似廢話,但工作生活中亂七八糟的聲音太多了。做好自我,長期鬥爭。 朱敏 說一條 知道...