标准模板库(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()
{