C STL程式設計學習(一)

2021-10-04 19:00:58 字數 2863 閱讀 2607

檔案字串流的使用方式

結尾開設新的專欄了,之前刷codewars的時候經常性的使用一些stl裡面的一些功能,也可以多多少少掌握一些比較方便的用法。但是,僅僅是對一些簡單用法的掌握,缺乏系統的學習,是遠遠無法勝任之後更複雜的要求。靈感**於積累,而靈感的出現就是知識網路中相互聯絡的知識產生共鳴。而要使我們的靈感可以更多的湧現,需要我們的知識網路更加嚴密,僅僅是碎片化的學習是遠遠不夠的。這就是今天要來開始系統學習stl的原因。(另外:博主是老九學堂的學生,本博文許多知識**於老九學堂的qt框架課,所以在這給老九打波廣告吧)

話不多說,開始關於stl的學習。

stl全稱為standard template library,中文名叫做標準模板庫,由當年惠普實驗室開發的一系列軟體統稱,目的是借助模板,實現資料結構與演算法的功能。為我們的程式設計帶來了極大的便利,並被納為了c++的一部分,它由標準c++的i/o庫、容器和迭代器庫和演算法庫組成,包含一組巨集、函式型別和物件宣告組成。

下面展示一些 。

方式一

#include

#include

//引入此標頭檔案

using

namespace std;

intmain()

cout << content << endl;};

_io_file()

;}

這樣的執行結果為:我們通過執行這個程式,讀取了其本身的源**,並利用字串的拼接還原列印出了此源**。同時,我們又輸出了乙個名為copy_lbt的檔案,將我們的源**輸出到了這個新建的檔案裡面。

這個就是檔案流的乙個操作展示。

方式二

#include

#include

//要引入此標頭檔案

using

namespace std;

intmain

(int argc,

char

* ar**)

//這裡由作業系統傳來兩個引數argc與ar**,ar**為指標的指標,argc為整數

/** * 假設程式名稱為program

* argc = 1,表示只有乙個程式名稱,ar**[0]指向輸入的程式路徑及名稱

* 輸入prog para_1 para_2時有兩個引數

* argc = 3,表示除了程式名外還有兩個引數

* ar**[0]指向程式名稱,ar**[1]指向引數para_1字串,ar**[2]指向para_2字串

*/};//再次宣告乙個函式

auto showfiletwo =

[argc,ar**,process]()

else

//關閉檔案流

input.

close()

;}};

showfiletwo()

;return0;

}

#include

#include

//要引入此標頭檔案

#include

#include

using

namespace std;

intmain

(int argc,

char

* ar**)

;//宣告乙個format函式

auto format =

(const string& s)

->string

;//宣告乙個valid

auto valid =

(const string& content)

->

bool

;//宣告乙個函式

auto getdata =

(istream& input)

->vector

//把物件放到容器中

people.

push_back

(data);}

//返回集合

return people;};

//在書寫乙個函式

auto stringprocess =

[valid,format]

(ostream output, vector people)

->ostream&

else

}//再判定一下

if(badnumbers.

str().

empty()

) output << entry-

>name <<

" "<< formatted.

str(

)<< endl;

else

cerr <<

"輸入錯誤:"

<< entry-

>name <<

"非法的**號碼:"

<< badnumbers.

str(

)<< endl;

}return output;};

stringprocess

(cout,

getdata

(cin));

return0;

}

i/o部分的學習就差不多了,其中其實還涉及了很多知識點

如:函式的lambda表示式,系統引數argc與ar**,vector容器類的操作和迭代器的使用,還有i/o的很多靈活操作,需要好好消化才能比較好的理解所學的這部分內容。目前有一些無法很好的理解十分正常,就是不要死磕,可以先往後面去學習,再回過頭來重新回顧,很多比較難懂的就會融匯貫通。

之後會交叉更新codewars上面的認為好的題目,以及stl的學習。emmm。。。大概就是這樣吧。

C STL程式設計學習(三)

結束函式模板就是把函式型別引數化了,類模板則也是一樣的。template class t class person void show t mid t mage void test01 就創造了單個的類模板,這裡由於類模板必須顯式指定型別,所以用了 int 表示這個person是int型別的 類模板...

C STL學習記錄一

常數型成員函式,在類中宣告的格式有三種 1。防止本函式誤寫引數變數的 返回值型別 函式名 const 引數,const 引數,2。防止本函式誤寫類物件內全部的變數的 返回值型別 函式名 參數列 const 3。防止其他函式誤寫返回位址或引用的 const 返回值型別 函式名 參數列 拷貝建構函式定義...

C STL學習筆記一

資料結構與演算法是程式設計的核心,stl中包含各種資料結構和優秀的演算法,確實值得深入學習,本文中雖然著重使用,但希望有心的朋友能多看看相關資料結構的實現,對於c 語言確實會有較大幫助。ps 按照網上孟巖老師的安裝方法,我出現了一些問題,後來按照上面文章所說的安裝成功。關於為何採用sgi版本stl庫...