-
你什么儀式九二卡加
查看全部 -
赴日嗯噠航空
查看全部 -
operator
查看全部 -
operate
查看全部 -
int main
查看全部 -
Bijidsad
查看全部 -
#include?<iostream> #include?<stdlib.h> #include?<vector> #include?<list> #include?<map> #include?<string> using?namespace?std; /******** 通過使用標準模板庫,學習其用法 *********/ int?main(void){ ????map<string,string>?m; ????pair<string,string>?p1("H","hello"); ????pair<string,string>?p2("W","world"); ????pair<string,string>?p3("B","bejign"); //????m.push_back(p1); //????m.push_back(p2); ????//map中沒有push_back,和list,vector不同 ????m.insert(p1); ????m.insert(p2); ????m.insert(p3); ???? cout<<m["H"]<<endl; cout<<m[”B“]<<endl; ????//map的遍歷也必須使用迭代器,也可以使用索引的符號來進行遍歷 ????//用迭代器進行遍歷,迭代器適用于所有的STL ????map<string,string>::iterator?itor?=?m.begin(); ????for(;itor?!=?m.end();itor++){ //????????cout?<<?*itor?<<endl; //map輸出需要輸出兩個 ????????cout<<itor->first<<endl; ????????cout<<itor->second<<endl; ????????cout<<endl; ????} ????return?0; }
查看全部 -
map使用方法: #include?<iostream> #include?<stdlib.h> #include?<vector> #include?<list> #include?<map> #include?<string> using?namespace?std; /******** 通過使用標準模板庫,學習其用法 *********/ int?main(void){ ????map<int,string>?m; ????pair<int,string>?p1(3,"hello"); ????pair<int,string>?p2(6,"world"); ????pair<int,string>?p3(8,"bejign"); //????m.push_back(p1); //????m.push_back(p2); ????//map中沒有push_back,和list,vector不同 ????m.insert(p1); ????m.insert(p2); ????m.insert(p3); ????//map的遍歷也必須使用迭代器,也可以使用索引的符號來進行遍歷 ????cout<<m[3]<<endl; ????cout<<m[6]<<endl; ????//用迭代器進行遍歷,迭代器適用于所有的STL ????map<int,string>::iterator?itor?=?m.begin(); ????for(;itor?!=?m.end();itor++){ //????????cout?<<?*itor?<<endl; //map輸出需要輸出兩個 ????????cout<<itor->first<<endl; ????????cout<<itor->second<<endl; ????????cout<<endl; ????} ????return?0; }
輸出:
hello
world
3
hello
6
world
8
bejign
Process finished with exit code 0
查看全部 -
list定義及使用方法: #include?<iostream> #include?<stdlib.h> #include?<vector> #include?<list> #include?<map> using?namespace?std; /******** 通過使用標準模板庫,學習其用法 *********/ int?main(void){ ????list<int>?list1; ????list1.push_back(4); ????list1.push_back(7); ????list1.push_back(10); //????for(int?i?=?0;?i?<?list1.size();?i++){ //????????cout<<list1[i]<<endl; //????} //錯誤不能用list1[i]來訪問list的元素,必須使用迭代器 ????list<int>::iterator?itor?=?list1.begin(); ????for(;itor?!=?list1.end();itor++){ ????????cout?<<?*itor?<<?endl; ????} ????return?0; }
查看全部 -
#include?<iostream> #include?<stdlib.h> #include?<vector> #include?<list> #include?<map> using?namespace?std; /******** 通過使用標準模板庫,學習其用法 *********/ int?main(void){ ????vector<int>?vec; ????vec.push_back(3); ????vec.push_back(4); ????vec.push_back(6); ????vec.pop_back(); ????cout<<vec.size()<<endl; ????for(int?i?=?0;?i?<?vec.size();i++){ ????????cout<<vec[i]<<endl; ????} ????//使用迭代器 ????vector<int>::iterator?itor?=?vec.begin(); ????//cout<<*itor<<endl; ????for(;itor?!=?vec.end();itor++){ ????????cout<<*itor<<endl; ????} ????cout<<vec.front()<<endl;//打印第一個元素 ????cout<<vec.back()<<endl;//打印最后一個元素 ????return?0; }
錯誤:error: unknown type name 'vector'; did you mean 'hecto'?
查看全部 -
map:映射
存儲的數據都是成對出現,
具體使用方法:(訪問方式和數組類似,map對象名[key])
注意m[“S”]
查看全部 -
list:鏈表模板
特點:數據插入速度快
每個節點:數據域&指針部分
雙鏈表:既可以從頭找到尾,也可尾到頭。
插入操作,向量比鏈表較復雜,兩者使用方法類型
查看全部 -
empty()?//返回值是一個布爾類型,當當前向量是一個空向量時,返回的是ture,否則返回為false begin() end() clear()//不管向量有多少個元素,最后0個元素 fronnt()//返回第一個元素 back()//返回最后一個元素 size()//返回向量中數據的個數 push_back(elem)//將數據插入向量尾 pop_back()//刪除向量尾部數據 int?main(void){ ????vector<int>?vec; ????vec.push_back(10);//在向量尾部加一個10 ????vec.push_pop();//將尾部的10抹掉 ????cout<<vec.size()<<endl;//總數為0 } 遍歷數組法1: for(int?k?=?0;k?<?vec.size();k++){ ????cout<<vet[k]<<endl; } 遍歷數組法2:用迭代器iterator進行遍歷,可以訪問標準模板庫對象重的每個元素了 int?main(void){ ????vector?vec; ????vec.push_back("hello"); ????/* ?????*?如何定一個向量的迭代器: ?????*?vector<類型>::iterator?迭代器的變量名 ?????*/ ????vetor<string>::iterator?citer?=?vec.begin();//只有在向量需要將第一個元素迭代器傳給一個迭代器變量時才會用到begin() ????for(;citer?!=?vec.end();?citer++){//end()向量最后一個元素的下一個位置,citer作為迭代器(類似指針) ????????cout?<<?*citer?<<?endl; ????}? ????return?0; }; ????return?0; };
查看全部 -
c++標準模板庫:
STL:標準模板庫
STL:Standard Template Lib
1.vector 向量 (本質:對數組的封裝)
? ? 特點:讀取能在常數時間完成
具體在使用時:
vector<int>?ivec1;//初始化一個空的向量 vector<int>?ivec2(ivet1); vector<string>?svac1; vector<string>?svec2(ivec); vetor<int>?ivet4(10,-1);//用10個-1這樣的元素初始化了ivet4這個向量 vetor<string>?svec(10,"hi!");?//用10個這樣的字符串元素初始化了ivet4這個向量
查看全部 -
5.8練習:
#include?<iostream> using?namespace?std; /** ?*?定義一個矩形類模板Rect ?*?成員函數:calcArea()、calePerimeter() ?*?數據成員:m_length、m_height ?*/ template?<typename?T> class?Rect { public: ????Rect(T?length,T?height); ????T?calArea(); ????T?calePerimeter(); public: ????T?m_length; ????T?m_height; }; /** ?*?類屬性賦值 ?*/ template?<typename?T> Rect<T>::Rect(T?length,T?height) { ????m_length?=?length; ????m_height?=?height; } /** ?*?面積方法實現 ?*/ template?<typename?T> T?Rect<T>::calArea() { ????return?m_length?*?m_height; } /** ?*?周長方法實現 ?*/ template?<typename?T> T?Rect<T>::calePerimeter() { ????return?(?m_length?+?m_height)?*?2; } int?main(void) { ????Rect<int>?rect(3,?6); ????cout?<<?rect.calArea()?<<?endl; ????cout?<<?rect.calePerimeter()?<<?endl; ????return?0; }
查看全部
舉報
0/150
提交
取消