#include<iostream>#include<list>#include<algorithm>usingnamespace std;// list的遍历voidtest_list1(){list<int> lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);lt.push_back(5);//迭代器list<int>::iterator it = lt.begin();while(it != lt.end()){*it *=3;++it;}//范围forfor(constauto& e : lt){cout << e <<" ";}cout << endl;}
2、list的头插、头删、尾插、尾删 【其时间复杂度都是:O(1)】
voidtest_list2(){list<int> lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);lt.push_back(5);for(constauto& e : lt){cout << e <<" ";}cout << endl;lt.pop_back();lt.pop_back();lt.push_front(1);lt.push_front(1);for(constauto& e : lt){cout << e <<" ";}cout << endl;lt.pop_front();lt.pop_front();for(constauto& e : lt){cout << e <<" ";}cout << endl;}
3、find\insert\erase
// find\insert\erase//find 统一放置在STL的 <algorithm>里面了voidtest_list3(){list<int> lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);lt.push_back(5);auto pos =find(lt.begin(), lt.end(),3);if(pos != lt.end()){lt.insert(pos,30);lt.insert(pos,20);// 这里的pos不会失效lt.insert(pos,10);*pos =9;}for(auto e : lt){cout << e <<" ";}cout << endl;pos =find(lt.begin(), lt.end(),4);if(pos != lt.end()){lt.erase(pos);//这里的pos会失效;因为pos结点已经被删除了,再去访问就成了非法访问 野指针了。/*cout<< *pos <<endl;*/}for(auto e : lt){cout << e <<" ";}cout << endl;}
4、sort:底层用的排序思想是 mergesort【归并排序】
voidtest_list4(){list<int> lt;lt.push_back(5);lt.push_back(4);lt.push_back(3);lt.push_back(2);lt.push_back(1);lt.sort();//相当于对 [lt.begin(),lt.end()) 进行归并排序for(auto e : lt){cout << e <<" ";}cout << endl;}// N个(N很大)数据需要排序,选择哪一种:(1)vector + 算法sort【底层是:快排】 (2)list + 自身sort【底层是:归并排序】// vector更具有优势
Windows MySQL服务安装及问题解决方案 安装及配置步骤一:官网下网MySQL安装包步骤二:设置环境变量步骤仨:配置MySQL,ini配置文件步骤四:初始化MySQL步骤五:开启MySQL服务步骤六:测试是否安装成功步骤七&…