stl list
#include <list> #include <stdio.h> #include <algorithm> #include "listEx.h" using namespace std; typedef struct { char name[100]; int age; char address[100]; }STUDENT; typedef list<STUDENT> STUDENTLIST; class EventIsIn11 { public: bool operator () (STUDENT &student) { return student.age == 13; } }; int comp(int n1,int n2) { return n1>n2; } int erasecom(int n) { return n<=3; } int main() { //初始化 list<int> c1(3); //建一个含三个默认值是0的元素的链表 list<int> c2(5,2); //建一个含五个元素的链表,值都是2 list<int> c4(c2); //建一个c2的copy链表 list<int> c5(c1.begin(),c1.end()); ////c5含c1一个区域的元素[_First, _Last)。 list<int> ListEx; ListEx.push_back(2); ListEx.push_back(3); ListEx.push_back(4); ListEx.push_back(8); ListEx.push_back(8); //ListEx.assign(2,9); ListEx.sort(comp); STUDENT aa={"che",10,"jiangsu"}; STUDENT bb={"che1",11,"jiangsu1"}; STUDENT cc={"che2",12,"jiangsu2"}; STUDENT ee={"che1",11,"jiangsu1"}; STUDENTLIST StudentList; StudentList.push_back(aa); StudentList.push_back(bb); StudentList.push_back(cc); ListEx.unique(); //ListEx.remove_if(erasecom); ListEx.remove(8); STUDENTLIST StudentListEx; list<int>::iterator it; list<int>::reverse_iterator reverseit; STUDENTLIST::iterator StudentIt; int i=0; for (it=ListEx.begin();it!=ListEx.end();++it) { printf("1ListEx %d[%d]\r\n",i++,*it); } for (reverseit=ListEx.rbegin();reverseit!=ListEx.rend();++reverseit) { printf("2ListEx %d[%d]\r\n",i++,*reverseit); } for (StudentIt=StudentList.begin();StudentIt!=StudentList.end();++StudentIt) { printf("StudentList %d[%s]\r\n",i++,(*StudentIt).name); } StudentIt=find_if(StudentList.begin(),StudentList.end(),EventIsIn11()); if (StudentIt!=StudentList.end()) { printf("******%s****\r\n",(*StudentIt).name); } else { printf("***can not find*****\r\n"); } printf("*******%d**********\r\n",StudentList.front().age); }