STL使用上的小小總結

2021-05-22 14:39:27 字數 724 閱讀 1414

stl從接觸到使用,還是很長一段時間了。

當初只為了能夠簡單使用,很多細節的東西,都不了解,本以為不會出問題。後來卻帶來很多麻煩。

我只使用了list和map,但是相信會用這兩個其他的,也能很好理解了。

誤區:1.以為stl容器不會儲存具體的內容,只會儲存指標。事實卻是相反的,stl的就是容器。可以儲存物件,結構體,物件指標,基本型別。而stl的儲存是複製操作的。所以就算用指標也是複製的乙個指標進去。所以對於容器的中內容,如果是物件,那你的物件是必須要有拷貝建構函式的。如果不解這些過載可以參考:

如果是指標,當然就無所謂了,容器類只是有了個新的乙個指標。在刪除容器類乙個元素的時候,指標被刪除,它所指的東西,可不會被刪除,這裡要注意的。是物件的話,容易刪除它的時候,會將它析構掉。

2.遍歷容器的時候,容易犯得錯誤

當我用

如果覺得這樣能把list清空,那就真是見鬼了。因為a一旦被erease掉,就失效了,不能再用它來++了。。所以提前備份乙個迭代器才行啊。

3.無論是乙個類還是結構體,當你用引用直接=來copy的時候,是會呼叫預設copy函式的,如果裡面有指標是千萬不能這樣做地。這時候,就必須要過載=號。

4.stl本身應該是非常安全的,但是如果容器中儲存的資料,出現記憶體越界,貌似是相當的恐怖。整個stl的容器都無法使用了。這種情況下就需要特別注意使用stl儲存什麼樣的資料型別。

C const cast 使用上的簡單總結

const cast是一種c 運算子,主要是用來去除復合型別中const和volatile屬性 沒有真正去除 變數本身的const屬性是不能去除的,要想修改變數的值,一般是去除指標 或引用 的const屬性,再進行間接修改。include include using namespace std in...

STL使用總結

emm使用stl也有一段時間,但都是偶爾查查部落格一些零碎的用法,沒有系統的看過,沒有系統的學習過,看了晴神的演算法筆記決定寫一篇部落格總結一下,當然在以後的使用中遇見其他的用法也會記錄下來,迭代加遞迴學習吧,keep learning 標頭檔案 includeusing namespace std...

STL使用總結

使用vector,需要包含標頭檔案 include 一般來說 include 的查詢位置是標準庫標頭檔案所在目錄,include 的查詢位置是當前原始檔所在目錄。不過這些都可由編譯器呼叫引數等配置更改。一般我們都用的是 只有有時使用了 include bits stdc h 1 vector物件的比...