#include<iostream> #include<vector> #include<deque> #include<list> #include<forward_list> #include<set> #include<unordered_set> #include<map> #include<unordered_map> #include<algorithm> using namespace std; template<typename T> void print(const T &container); template<typename T> void printmap(const T &map); int main () { cout<<"vector----------------------------------------\n"; vector<int> a={3,1,2,4,7}; print(a); cout<<"size: "<<a.size()<<".\tcapacity: "<<a.capacity()<<".\n"; a.push_back(4); print(a); cout<<"size: "<<a.size()<<".\tcapacity: "<<a.capacity()<<".\n"; a.insert(a.cbegin()+1,9); print(a); a.insert(a.cend(),2,8); print(a); a.pop_back(); print(a); sort(a.begin(),a.end()); print(a); //不用: cbegin(), cend() sort(a.begin(),a.end(),greater<int>()); print(a); vector<int>::const_iterator vp=find(a.cbegin(),a.cend(),4); if(vp!=a.cend()) cout<<"the first pos. of 4 is:\t"<< distance(a.cbegin(),vp) <<endl; else cout<<'4'<<" does not exist."<<endl; cout<<"the number of 4 is:\t"<< count(a.cbegin(),a.cend(),4) <<endl; a.erase(vp); print(a); a.erase(a.cbegin()+1,a.cend()-1); print(a); a.clear(); cout<<"\ndeque-----------------------------------------\n"; deque<int> a2{1,4,7,3,5,9,8}; a2.push_front(9); print(a2); cout<<"\nlist------------------------------------------\n"; list<int> b{1,4,2,7,8,3,6}; print(b); b.push_back(2); print(b); b.insert(b.cbegin(),a.cbegin(),a.cbegin()+3); print(b); b.pop_front(); print(b); b.remove(2); print(b); b.sort(); print(b); cout<<"\nforward_list----------------------------------\n"; //cout<<sizeof(double)<<endl; forward_list<int> b2={1,2,3,7,8,3}; print(b2); // /* // b2.push_back(2); //error // auto flp=b2.begin(); // flp++; // flp--; //error // */ *b2.begin()=9; print(b2); b2.reverse(); print(b2); cout<<"\nset-------------------------------------------\n"; set<int> c={1,4,5,6,3,2,6,7,9}; print(c); cout<<"size: "<<c.size()<<endl; c.insert(8); print(c); cout<<"the number of 10 is:\t"<<c.count(10)<<endl; c.erase(6); print(c); //*c.begin()=9; //error cout<<"\nmultiset--------------------------------------\n"; multiset<int> c2={1,3,4,3,5,6,1}; print(c2); cout<<"the number of 3 is:\t"<<c.count(3)<<endl; c2.erase(3); print(c2); cout<<"\nunordered_multiset----------------------------\n"; unordered_multiset<int> c3={1,3,4,3,5,6,1}; print(c3); cout<<"Size():\t\t"<<c3.size()<<endl; cout<<"Bucket count:\t"<<c3.bucket_count()<<endl; cout<<"Max load factor:"<<c3.max_load_factor()<<endl; cout<<"Load factor:\t"<<c3.load_factor()<<endl; cout<<"\nmap-------------------------------------------\n"; map<int,string>d={{2,"Tony"},{1,"Jack"},{3,"Lee"},{100,"Doe"},{7,"Lucy"}}; printmap(d); d.insert(make_pair(3,"Wane")); d.insert(pair<int,string>(5,"Zen")); d[8]="Tai"; //d[8]{"Tai"} or d[8]("Tai") //error printmap(d); cout<<"\nmultimap--------------------------------------\n"; multimap<int,string>d2; d2.insert(d.cbegin(),d.cend()); printmap(d2); d2.insert(make_pair(3,"Wane")); printmap(d2); d2.erase(3); printmap(d2); return 0; } template<typename T> void print(const T &container) { for(typename T::const_iterator cp=container.cbegin();cp!=container.cend();cp++) cout<<*cp<<" "; cout<<endl; //for(auto &v:v) } template<typename T> void printmap(const T &map) { for(auto &v:map) cout<<v.first<<"\t-->\t"<<v.second<<endl; cout<<endl; }
运行结果
vector---------------------------------------- 3 1 2 4 7 size: 5. capacity: 5. 3 1 2 4 7 4 size: 6. capacity: 10. 3 9 1 2 4 7 4 3 9 1 2 4 7 4 8 8 3 9 1 2 4 7 4 8 1 2 3 4 4 7 8 9 9 8 7 4 4 3 2 1 the first pos. of 4 is: 3 the number of 4 is: 2 9 8 7 4 3 2 1 9 1 deque----------------------------------------- 9 1 4 7 3 5 9 8 list------------------------------------------ 1 4 2 7 8 3 6 1 4 2 7 8 3 6 2 9 1 7 1 4 2 7 8 3 6 2 1 7 1 4 2 7 8 3 6 2 1 7 1 4 7 8 3 6 1 1 3 4 6 7 7 8 forward_list---------------------------------- 1 2 3 7 8 3 9 2 3 7 8 3 3 8 7 3 2 9 set------------------------------------------- 1 2 3 4 5 6 7 9 size: 8 1 2 3 4 5 6 7 8 9 the number of 10 is: 0 1 2 3 4 5 7 8 9 multiset-------------------------------------- 1 1 3 3 4 5 6 the number of 3 is: 1 1 1 4 5 6 unordered_multiset---------------------------- 1 1 3 3 4 5 6 Size(): 7 Bucket count: 17 Max load factor:1 Load factor: 0.411765 map------------------------------------------- 1 --> Jack 2 --> Tony 3 --> Lee 7 --> Lucy 100 --> Doe 1 --> Jack 2 --> Tony 3 --> Lee 5 --> Zen 7 --> Lucy 8 --> Tai 100 --> Doe multimap-------------------------------------- 1 --> Jack 2 --> Tony 3 --> Lee 5 --> Zen 7 --> Lucy 8 --> Tai 100 --> Doe 1 --> Jack 2 --> Tony 3 --> Lee 3 --> Wane 5 --> Zen 7 --> Lucy 8 --> Tai 100 --> Doe 1 --> Jack 2 --> Tony 5 --> Zen 7 --> Lucy 8 --> Tai 100 --> Doe