list
来源:互联网 发布:php pack 打包字符串 编辑:程序博客网 时间:2024/06/06 05:33
#include <iostream>#include <math.h>#include <vector>#include <list>using namespace std;bool single_digit(const int &value){return (value<5);}class is_odd{public: bool operator()(const int &value){return (value%2==1);}};bool compare_nocase(const string &first,const string&second){ int i=0; if((i<first.length()) && (i<second.length())) { if(towlower(first[i]) < towlower(second[i])) return true; else i++; } if(first.length()<second.length()) return true; else return false;}bool compare_integarl_part(double first,double second){ return ((int)first == (int)second);}class is_near{public: bool operator()(double first,double second) { return (fabs(first-second)<5.0); }};int main(){ cout<<"---back"<<endl; list<int> intlist; intlist.push_back(10); cout<<"list size:"<<intlist.size()<<endl; while(intlist.back()!=0) intlist.push_back(intlist.back()-1); cout<<"list size:"<<intlist.size()<<endl; cout<<"intlist:"; for(list<int>::iterator it=intlist.begin();it!=intlist.end();it++) cout<<" "<<*it; cout<<endl; list<int>(intlist).swap(intlist); //erase cout<<"---erase-advance"<<endl; list<int>eraselist; for(int i=1;i<10;++i) eraselist.push_back(i*10); list<int>::iterator it1,it2; it1=it2=eraselist.begin(); // 10 20 30 40 50 60 70 80 90 // ^^ advance(it2,6); //^ ^ it1++; // ^ ^ // 10 30 40 50 60 70 80 90 it1=eraselist.erase(it1);// ^ ^ it2=eraselist.erase(it2);// 10 30 40 50 60 80 90 // ^ ^ ++it1; // ^ ^ --it2; // ^ ^ eraselist.erase(it1,it2);//10 30 60 80 90 // ^ cout<<"eraselist:"; for(it1=eraselist.begin();it1!=eraselist.end();++it1) cout<<" "<<*it1; cout<<endl; list<int>(eraselist).swap(eraselist); //insert cout<<"---insert"<<endl; list<int> insertlist; list<int>::iterator it; for(int i=1;i<=5;++i) insertlist.push_back(i);//1 2 3 4 5 it=insertlist.begin(); ++it; //指向2 ^ insertlist.insert(it,10); //1 10 2 3 4 5 //it还是指向2 ^ insertlist.insert(it,2,20);//1 10 20 20 2 3 4 5 --it;//it指向第二个20 ^ vector<int>insertvector(2,30); insertlist.insert(it,insertvector.begin(),insertvector.end()); //1 10 20 30 30 20 2 3 4 5 cout<<"insertlist:"; for(it=insertlist.begin();it!=insertlist.end();++it) cout<<" "<<*it; cout<<endl; list<int>(insertlist).swap(insertlist); //list cout<<"---list"<<endl; list<int>first; list<int>second(4,100); list<int>third(second.begin(),second.end()); list<int>fourth(third); int array[]={16,2,77,29}; list<int>fifth(array,array+sizeof(array)/sizeof(array[0])); cout<<"fifth:"; for(list<int>::iterator it=fifth.begin();it!=fifth.end();++it) cout<<" "<<*it; cout<<endl; list<int>(first).swap(first); list<int>(second).swap(second); list<int>(third).swap(third); list<int>(fourth).swap(fourth); list<int>(fifth).swap(fifth); //merge cout<<"---merge"<<endl; list<int>merge1list; list<int>merge2list; merge1list.push_back(2); merge1list.push_back(9); merge1list.push_back(7); merge2list.push_back(222); merge2list.push_back(33); merge2list.push_back(44); //unsort merge1list.merge(merge2list); cout<<"unsort merge1list:"; for(list<int>::iterator it=merge1list.begin();it!=merge1list.end();++it) cout<<" "<<*it; cout<<endl; //sort merge1list.sort(); merge2list.sort(); merge1list.merge(merge2list); cout<<"sort merge1list:"; for(list<int>::iterator it=merge1list.begin();it!=merge1list.end();++it) cout<<" "<<*it; cout<<endl; list<int>(merge1list).swap(merge1list); list<int>(merge2list).swap(merge2list); //remove_if cout<<"---remove_if"<<endl; list<int>remove_iflist; for(int i=0;i<10;++i) remove_iflist.push_back(i); remove_iflist.remove_if(single_digit); cout<<"single_digit:"; for(list<int>::iterator it=remove_iflist.begin(); it!=remove_iflist.end();++it) cout<<" "<<*it; cout<<endl; remove_iflist.remove_if(is_odd()); cout<<"is_odd:"; for(list<int>::iterator it=remove_iflist.begin(); it!=remove_iflist.end();++it) cout<<" "<<*it; cout<<endl; list<int>(remove_iflist).swap(remove_iflist); //rend cout<<"---rend"<<endl; list<int>rendlist; for(int i=0;i<10;++i) rendlist.push_back(i); cout<<"reverse rendlist:"; list<int>::reverse_iterator rit; for(rit=rendlist.rbegin();rit!=rendlist.rend();++rit) cout<<" "<<*rit; cout<<endl; list<int>(rendlist).swap(rendlist); //resize cout<<"---resize"<<endl; list<int>resizelist; for(int i=0;i<10;++i) resizelist.push_back(i); resizelist.resize(5); cout<<"resize 5:"; for(list<int>::iterator it=resizelist.begin(); it!=resizelist.end();++it) cout<<" "<<*it; cout<<endl; resizelist.resize(8,100); cout<<"resize 8,100:"; for(list<int>::iterator it=resizelist.begin(); it!=resizelist.end();++it) cout<<" "<<*it; cout<<endl; resizelist.resize(12); cout<<"resize 12:"; for(list<int>::iterator it=resizelist.begin(); it!=resizelist.end();++it) cout<<" "<<*it; cout<<endl; list<int>(resizelist).swap(resizelist); //size cout<<"---size"<<endl; list<int>sizelist; cout<<"size1:"<<sizelist.size()<<endl; for(int i=0;i<10;++i) sizelist.push_back(i); cout<<"size2:"<<sizelist.size()<<endl; sizelist.insert(sizelist.begin(),10,100); cout<<"size3:"<<sizelist.size()<<endl; sizelist.pop_back(); cout<<"size4:"<<sizelist.size()<<endl; list<int>(sizelist).swap(sizelist); //sort cout<<"---srot"<<endl; list<string> sortlist; sortlist.push_back("one"); sortlist.push_back("two"); sortlist.push_back("three"); sortlist.sort(); cout<<"sort1:"; for(list<string>::iterator it=sortlist.begin(); it!=sortlist.end();++it) cout<<" "<<*it; cout<<endl; sortlist.sort(compare_nocase); cout<<"sort2:"; for(list<string>::iterator it=sortlist.begin(); it!=sortlist.end();++it) cout<<" "<<*it; cout<<endl; //splice list<int> splicelist1,splicelist2; list<int>::iterator spliceit; for(int i=1;i<=4;++i) splicelist1.push_back(i);//splicelist1:1 2 3 4 for(int i=1;i<=3;++i) splicelist2.push_back(i*10);//splicelist2:10 20 30 spliceit=splicelist1.begin(); ++spliceit; //points to 2 splicelist1.splice(spliceit,splicelist2);//splicelist1:1 10 20 30 2 3 4 // splicelist2:empty // it still points to 2 splicelist2.splice(splicelist2.begin(),splicelist1,spliceit); //splicelist1:1 10 20 30 3 4 //splicelist2:2 //it is invalid spliceit=splicelist1.begin(); advance(spliceit,3);//it points to 30 splicelist1.splice(splicelist1.begin(),splicelist1,spliceit,splicelist1.end()); //splicelist1:30 3 4 1 10 20 cout<<"splicelist1:"; for(spliceit=splicelist1.begin();spliceit!=splicelist1.end();++spliceit) cout<<" "<<*spliceit; cout<<endl; cout<<"splicelist2:"; for(spliceit=splicelist2.begin();spliceit!=splicelist2.end();++spliceit) cout<<" "<<*spliceit; cout<<endl; list<int>(splicelist1).swap(splicelist1); list<int>(splicelist2).swap(splicelist2); //swap cout<<"---swap"<<endl; list<int>swaplist1(3,100); list<int>swaplist2(2,500); list<int>::iterator swapit; swaplist1.swap(swaplist2); cout<<"swaplist1:"; for(swapit=swaplist1.begin(); swapit!=swaplist1.end();++swapit) cout<<" "<<*swapit; cout<<endl; cout<<"swaplist2:"; for(swapit=swaplist2.begin(); swapit!=swaplist2.end();++swapit) cout<<" "<<*swapit; cout<<endl; list<int>(swaplist1).swap(swaplist1); list<int>(swaplist2).swap(swaplist2); //unique cout<<"---unique"<<endl; list<double>uniquelist; list<double>::iterator uniqueit; for(int i=0;i<10;++i) uniquelist.push_back(rand()%1000/(double)100); cout<<"uniquelist:1:"; for(uniqueit=uniquelist.begin();uniqueit!=uniquelist.end();++uniqueit) cout<<" "<<*uniqueit; cout<<endl; uniquelist.sort(); uniquelist.unique(); cout<<"uniquelist:2:"; for(uniqueit=uniquelist.begin();uniqueit!=uniquelist.end();++uniqueit) cout<<" "<<*uniqueit; cout<<endl; uniquelist.unique(compare_integarl_part); cout<<"uniquelist:3:"; for(uniqueit=uniquelist.begin();uniqueit!=uniquelist.end();++uniqueit) cout<<" "<<*uniqueit; cout<<endl; uniquelist.unique(is_near()); cout<<"uniquelist:4:"; for(uniqueit=uniquelist.begin();uniqueit!=uniquelist.end();++uniqueit) cout<<" "<<*uniqueit; cout<<endl; list<double>(uniquelist).swap(uniquelist); // return 0;}
阅读全文
0 0
- List
- list
- List
- LIST
- list
- list
- List
- list
- list
- List
- list
- LIST
- List
- List
- List
- list
- list
- list
- TF_Serving 部署一个模型
- C++学习笔记--再谈const和引用
- Ng机器学习课程第五周神经网络反向传播算法课后作业初学者的理解
- win上搭建react-native android环境
- Java基础:类加载器
- list
- C++——对象的创建与使用(一)
- EA&UML日拱一卒-多任务编程超入门-(5) 对症下药
- ROS程序开机自启动
- python入门1之 list、tuple、dict、set的基本要点
- js 百度地图
- 角谷定理
- spring 整合hibernate Caused by: java.lang.ClassNotFoundException: javax.persistence.Entity
- Hibernate cascade