免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

C++模板引出的標(biāo)準(zhǔn)模板庫(kù)----->初涉-創(chuàng)新互聯(lián)

C++中模板,是相當(dāng)重要的一部分,前面提到過(guò)一些基礎(chǔ),關(guān)于模板中需要注意的問(wèn)題,會(huì)在最近整理出來(lái),今天想說(shuō)的,是由模板引出的標(biāo)準(zhǔn)模板庫(kù)。

成都創(chuàng)新互聯(lián)2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元團(tuán)風(fēng)做網(wǎng)站,已為上家服務(wù),為團(tuán)風(fēng)各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220

    當(dāng)初經(jīng)常會(huì)被推薦看《STL源碼剖析》這本書,聽說(shuō)很厲害,是C++高手都需要走過(guò)的路,可一直都不知道STL是什么,也一直忘記去查,今天整理出來(lái)的一些東西,最起碼可以讓未了解過(guò)這方面的童鞋認(rèn)識(shí)一下。

     C++標(biāo)準(zhǔn)模板庫(kù),即STL:Standard Template Lib,STL的產(chǎn)生,是必然的。在長(zhǎng)期的編碼過(guò)程中,一些程序員發(fā)現(xiàn),有一些代碼經(jīng)常用到,而且需求特別穩(wěn)定,于是,各大公司就在出售自己的IDE環(huán)境的同時(shí),將這些代碼打包一起銷售,之后,這些大公司就達(dá)成共識(shí),認(rèn)為應(yīng)該講這部分代碼進(jìn)一步統(tǒng)一規(guī)范,于是,就形成了一套標(biāo)準(zhǔn)模板,也就慢慢演變成了現(xiàn)在的STL。

    C++標(biāo)準(zhǔn)模板庫(kù)是一個(gè)相當(dāng)龐大的家族,今天,提到的是一些常用的部分,拿出來(lái)和大家分享。其他的使用方法,與今天要提到的這些都特別相似,很多程序員在開發(fā)項(xiàng)目的時(shí)候,都是隨用隨學(xué)。現(xiàn)在就進(jìn)入今天的正題。

vector向量頭文件:#include<vector>

    vector的本質(zhì)是對(duì)數(shù)組的分裝,可以認(rèn)為它是一個(gè)數(shù)組,不過(guò)相對(duì)數(shù)組功能更強(qiáng)大,根據(jù)存儲(chǔ)的元素個(gè)數(shù),自動(dòng)的變長(zhǎng)或者縮短,特點(diǎn):讀取能在常數(shù)時(shí)間完成

        在VS2013環(huán)境下,可以簡(jiǎn)單驗(yàn)證一下。

C++模板引出的標(biāo)準(zhǔn)模板庫(kù)----->初涉

        其中,size是該向量當(dāng)中現(xiàn)有元素個(gè)數(shù),capacity是該向量所能容納最多數(shù)組元素

初始化vector對(duì)象的方式:

        1、vector<T>v1----->保存類型為T的對(duì)象,默認(rèn)v1為空向量

        2、vector<T>v2(v1)----->用一個(gè)向量去初始化另外一個(gè)向量

        3、vector<T> v3(n,i)----->v3包含n個(gè)值為i的元素,即v3中存儲(chǔ)了n個(gè)i

        4、vector<T> v4(n)----->v4包含了值初始化元素的n個(gè)副本

向量常用函數(shù):

            empty()----->判斷向量是否為空<空返回true,非空返回fause>

            begin()----->返回向量迭代器首元素

            end()----->返回向量迭代器末元素的下一個(gè)元素

            clear()----->清空向量

            front()----->第一個(gè)數(shù)據(jù)

            back()----->最后一個(gè)數(shù)據(jù)

            size()----->獲得向量中數(shù)據(jù)大小

            push_back(elem)----->將數(shù)據(jù)插入向量尾

            pop_back()----->刪除向量尾部數(shù)據(jù)

    既然說(shuō),向量是數(shù)組的封裝,那么,無(wú)法避免的就要考慮到它的遍歷問(wèn)題。

向量遍歷有兩種方式:

一、按照數(shù)組形式遍歷

        for(int i = 0;i<vec.size;i++)

        {

           cout<<vec[k]<<endl;

        }

二、使用迭代器

向量迭代器的定義方式如下:

     vector<T>::iterator + 變量名  = vec.begin(); //可以理解為這個(gè)迭代器變量的類型為vector<T>::iterator,后面之所以要賦值vec.begin(),vec是我定義的向量名,是因?yàn)槲覀円瓿杀闅v的目的。代碼如下:

int main(void)

{

 vector<int>vec;

 vec.push_back(1);

 vec.push_back(2);

 vec.push_back(3);

 vec.push_back(4);

 vec.pop_back();

 //數(shù)組方法

 for (int i = 0; i < vec.size(); i++)

 {

  cout << vec[i] << endl;

 }

 //迭代器方法

 vector <int>::iterator pvec = vec.begin();

 for (; pvec != vec.end(); pvec++)

 {

  cout << *pvec << endl;

 }

 system("pause");

 return 0;

}

鏈表模板:list         頭文件:#include<list>

特點(diǎn):數(shù)據(jù)插入速度快

使用方法:與向量使用方法基本相同, 有push、insert、begin、end等函數(shù),也可通過(guò)迭代器進(jìn)行訪問(wèn)

值得注意的是,list不可以通過(guò)數(shù)組的方式進(jìn)行訪問(wèn)

同樣給出list遍歷的代碼,如下:

int main(void)
{
 list <int>list1;
 list1.push_back(1);
 list1.push_back(2);
 list1.push_back(3);
 list1.push_back(4);
 list<int>::iterator plist = list1.begin();
 for (; plist!= list1.end(); ++plist)
 {
  cout << *plist << endl;
 }
 system("pause");
 return 0;
}

映射模板:map頭文件:  #include<map>

map中鍵(key)與值(value)是一一對(duì)應(yīng)的,即成對(duì)出現(xiàn),通過(guò)關(guān)鍵字pair定義若干對(duì)key和value,再通過(guò)insert函數(shù)插入到map中。

 用迭代器遍歷map時(shí),不可以對(duì)迭代器前加*直接訪問(wèn)

給出map遍歷的代碼,如下:

int main(void)

{

 map<int, string>m;

 pair <int, string>p1(1,"hello");

 pair <int, string>p2(2, "world");

 pair <int, string>p3(3, "zhou");

 m.insert(p1);//這里不可以用push_back

 m.insert(p2);

 m.insert(p3);

 cout << m.size() << endl;

 ////數(shù)組輸出

 //for (int i = 0; i < m.size(); i++)

// {

//  cout << m[i] << endl;

// }

 //迭代器輸出

 map<int, string>::iterator pmap = m.begin();

 cout << m.size() << endl;

 for (; pmap != m.end(); pmap++)

 {

  cout << pmap->first << endl;//first表示鍵

  cout << pmap->second << endl;//second表示值

  cout << endl;  

 }

 system("pause");

 return 0;

}

除此之外,ma元素的數(shù)組訪問(wèn),和簡(jiǎn)單的數(shù)組也是有不同的,比如下面這段代碼。

 map<string, string> m;

 pair<string, string> p1("A", "shanghai");

 pair<string, string> p2("B", "beijing");

 m.insert(p1);

 m.insert(p2);

 cout << m["A"] << endl;

 cout << m["B"] << endl;

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

分享名稱:C++模板引出的標(biāo)準(zhǔn)模板庫(kù)-----&gt;初涉-創(chuàng)新互聯(lián)
鏈接URL:http://m.newbst.com/article38/hcpsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站建站公司全網(wǎng)營(yíng)銷推廣網(wǎng)站設(shè)計(jì)公司服務(wù)器托管微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站