標準模板庫(STL)是C++標準函數庫中的一個子集,佔龐大子集的80%;提供標準的輸入/輸出、字符串、容器、數值運算和非數值運算的支持。 ios
包括C標準函數庫、I/O流、String、(容器、算法)STL、診斷支持。 算法
在C++標準中,STL被組織爲13個頭文件:<algorithm><deque><functional><iterator><vector><list><map><memory><queue><numeric><set><stack><utility> less
#include<vector> #include<iostream> using namespace std; int main( ) { vector<double> a; vector<double>:: const_iterator i;//iterator a.push_back(1); a.push_back(2); a.push_back(3); a.push_back(4); for(i = a.begin();i!=a.end();i++) cout<<(*i)<<endl; return 0; }
#include <cstdlib> #include <iostream> #include <vector> #include <algrithm> using namespace std; template<class T> struct Print { void operator()(T& x)const//重載括號運算 { if(x%2==0){ cout<<x<<' '; } } }; int main(int argc, char *argv[]) { vector<int> vcInts;//實例化一個vector容器 for(int i=0;i<10;i++){ vcInts.push_back(i); } vector<int>::iterator iterBegin, iterEnd; iterEnd = vcInts.end(); for(iterBegin = vcInts.begin();iterBgin!= iterEnd;iterBegin++) { cout<<*iterBegin<<' '; } iterBegin = vcInts.begin(); for_each(iterBegin,iterEnd,Print<int>());//經過算法for_each和函數對象Print輸出容器中的元素 cout<<end; system("pause"); return 0; }
#include<iostream> #include<algorithm>//大量模板函數 #include<functional> #include<vector> using namespace std; class myclass{ public: myclass(int a,int b):first(a),second(b){};//構造函數 int first; int second; bool operator< (const myclass &m)const//const表示重載運算符 { return first<m.first; } }; bool less_second(const myclass& m1,const myclass & m2) { return m1.second<m2.second; } int main()
{