懶人手記(無整理,無排版,只為備份)

2021-04-18 22:54:48 字數 1370 閱讀 6939

很多相關stl都是從容器入手,對於那些完全不知道stl為何物的初學者,(比如說我)似乎對理解stl會容易些,畢竟相對於很抽象的迭代器和演算法,容器和我們已經掌握的知識(陣列,鍊錶等)有一定的相似性,或者說就是在實現上的泛型化,在功能上封裝了很多行為、及定義了相關迭代器。

但是當對其有了一定的了解後,就會發現要想深入理解、正確掌握最終達到熟練運用,我個人覺得,要講迭代器演算法相結合的方式為主線,把容器當作其中乙個輔助元素(可操作的物件,被作用者來理解,畢竟容器是死的),這樣stl才能真正顯現作為乙個可用行極強的工具的生動之處。一句話:stl是是乙個泛型的程式庫,核心是利用演算法來管理資料。

總之,stl賦予c++新的抽象層次,我們可以完全把動態陣列,鍊錶,二叉樹拋開,也不用再操心不同的搜尋演算法了。

當然,以迭代器和演算法相結合的方式來闡述下這陣子對stl的理解,並不是完全置容器於不顧,畢竟我們要施力於它。所以要簡要的用幾句話小結下容器。

容器:可以放任何型別的集合。

迭代器:從指標上抽象出來,最容易想到的是它的遍歷作用;

演算法:處理群集內的元素的。(我們從中可以看出容器確實是作用的物件);舉例說明非stl實現。

筆記說明了些個人對迭代器的理解:兩次分離;

stl的基本觀念就是將資料與操作分離,資料由容器類別加以管理,操作則由可定製的演算法定義之,迭代器在兩者之間充當粘合劑,使任何演算法都可以和任何容器互動運作,更重要的是介面統一。

安插型:我們說過任何行為類似迭代器都是一種迭代器,安插型就是一種比較抽象的迭代器了

它 back_insert_iterator可以呼叫容器的push_back()生成函式back_inserter(cont);兩種應用方式:1.一般指標介面,*pos直觀上是一樣的,內部實現不一樣,是先呼叫。。。2.顯式的方法:直接用插入式函式(我們看到這種顯式應用提醒我們,用安插式迭代器一定要指定具體容器例項,而不是像隨機迭代器那樣只需指出所需型別就可以,以為插入是要對);;;copy()(((1.兩個容器間,這是乙個危險的行為,因為第二個容器只有起始點。然後,由於演算法執行的是覆蓋動作而不是安插動作,所有目標容器必須要有元素來被覆寫,否則就會像例子一樣導致未定義行為。解決辦法是以開始就給目標容器乙個正確的大小,要不就顯式的改變其大小:如coll2.rezise(coll1.size());))) (((步驟:1.引入安插概念和兩種呼叫方式(書上圖及例子backins.cpp)2.引入copy()演算法分析:在普通兩容器間應用時易範的錯誤 例子copy1.cpp3.引入插入迭代器使問題解決,即安插迭代器和copy()演算法的完美結合。例子inserter.cpp..

流相關:輸入流和輸出流。輸入:問題:除了非法輸入外怎麼樣終止程式;當是char型只能中止程序來退出,但是此程式不在可用了;等輸入是檔案時end_of_stream如何應用;輸出:指出應用那個何種流即可。此步驟重點:1輸出流也有指標統一介面2闡述流介面(控制台和檔案)統一

稻草人手記

我是非常喜歡三毛的書。以前初中閱讀課本上 沙漠的飯店 那篇文章,不知道自己翻看了多少遍。後來我的哥們送了一本三毛的 送你一匹馬 看得我也是如痴如醉。再後來,我的小弟直接買了一整盒三毛典藏文集,其中有一本 我的寶貝 也讓我印象深刻。現在,看完這本 稻草人手記 感覺又接觸了一些新的東西,對生活的熱愛和珍...

「隨手記」意見整理

1.優點 框架比較美感,外觀設計比較吸引人 不足 功能沒有明顯劃分,新增賬單和顯示賬單單一化,比較死板。例如不能根據時間進行檢視,或著更改時間,自定義進行檢視顯示,除此之外功能單一,只有增加和顯示賬單,沒有新穎化。2.3.優點 框架美感,外觀吸引人,這一點便可以吸引到很多使用者。建議 實現的功能單一...

隨手記錄 之後整理

關於c語言的指標 書中摘錄 p char i p i 0x0f 這兩句話翻譯為彙編 movecx,i 是給ecx暫存器賦值 movbyte ecx i 0x0f 給ecx記憶體位址賦值 使得儲存他們的半導體都不一樣,乙個在cpu裡,乙個在記憶體晶元 如果將這兩句話的執行順序倒過來 p i 0x0f ...