C 學習日記(容器)

2021-08-13 04:55:38 字數 1756 閱讀 1555

容器:能夠操作多種資料結構和演算法的模板類和函式庫。能夠像現實中的容器一樣存放各種型別的物件,乙個容器中的所有物件必須是同乙個型別的。

通過元素在容器中的位置順序儲存和訪問元素的

vector

v1; //vector是儲存型別為t的物件,預設建構函式v1為空

vector

v2(v1); //v2是v1的乙個副本

vector

v3(n, i) //v3包含n個值為i的元素

vector

v4(n); //v4含有值初始化的元素的n個副本

vector

example(5,1); //5個1

vector

常用操作:

v.empty()//判斷v是否為空串 空則返回true 否則為false

s.size()//返回v中字元的個數

v.push_back(a)//在v的末尾新增乙個值為a的元素

v[n]//返回v中位置為n的字元

只能通過push_back()在vector

物件的最後新增元素

使用迭代器可以訪問容器中的元素

可以把指標看成一種特殊的迭代器

vector

::iterator point;

容器中begain操作返回的迭代器指向第乙個元素

end返回的迭代器指向最後乙個元素的下乙個位置,稱為超出末端迭代器。

vector

example(10.1);

for(vector

::iterator iter=example.begin();iter!=example.end();++iter)

*iter=0; //將所有的元素都重置為0

迭代器也支援算術操作

關聯容器通過鍵(key)來儲存和訪問元素的

包含兩個資料值

pair

>example(11,"china");//兩個型別名可以不同

pair

<

string,string

>s1("yaoming","china");

string one,two;

one=s1.first;//string物件one中為yaoming

two=s1.second;//two中為china

make_pair:

pair

> player;

string one,two;

while(cin>>one>>two)

player=make_pair(one,two); //player中的乙個元素為one中的字串,two為第二個輸入的字串

//或者 cin>>player.first>>player.second

提供一對一的資料處理能力

map《鍵值型別,關聯值型別》m; //建立乙個空的map物件

iostream:定義讀寫控制視窗的輸入輸出型別

fstream:定義讀寫檔案的輸入輸出型別

sstream:定義讀寫string物件的輸入輸出型別

iostream:

cin>>輸入,預設裝置為鍵盤

cout《輸出

cerr輸出程式錯誤訊息,預設輸出裝置為螢幕

C 學習日記

1611 3 李旗偉 2016年10月5日 連續5天總結 內容a.概括 a 運算子與表示式80 b 流程控制語句45 b.具體內容 在進行了對運算子與表示式的學習後,嘗試了簡單的資料輸入,但結果總是出人預料,自認為會成功的每次運算失敗,搞得我都快失去信心了,還好我知道凡事要堅持,只因心中有夢,才堅持...

C 學習日記

1611 3 李旗偉 2016年10月6日 連續6天總結 內容a.概括 a 程式的基本控制結構95 b 選擇結構60 b.具體內容 以昨天所學為基礎,今日了另乙個世界的學習 流程控制結構。今天,主要學習了程式的基本控制結構,對此已有了基本的認識,並且嘗試了輸入,也小有成績。此外,還對選擇結構進行了淺...

C 學習日記

1611 3 李旗偉 2016年10月7日 連續7天總結 內容a.概括 a 選擇結構100 b 迴圈結構80 c 控制執行順序的語句40 b.具體內容 今天,首先將昨天的殘留完成了 選擇結構,其次,學習了迴圈結構,並基本掌握其知識要領,然後簡單地進行了控制執行順序的語句的粗略了解,雖然幾乎沒弄清楚,...