重庆那些网站,喀喇沁旗网站建设公司,做一个同城app得多少钱,爱站网工具list的用法 1、list的遍历2、list的头插、头删、尾插、尾删 【其时间复杂度都是:O(1)】3、find\insert\erase4、sort#xff1a;底层用的排序思想是 mergesort【归并排序】 1、list的遍历
#include iostream
#include list
#include algorithm
using… list的用法 1、list的遍历2、list的头插、头删、尾插、尾删 【其时间复杂度都是:O(1)】3、find\insert\erase4、sort底层用的排序思想是 mergesort【归并排序】 1、list的遍历
#include iostream
#include list
#include algorithm
using namespace std;// list的遍历
void test_list1()
{listint lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);lt.push_back(5);//迭代器listint::iterator it lt.begin();while (it ! lt.end()){*it * 3;it;}//范围forfor (const auto e : lt){cout e ;}cout endl;
}
2、list的头插、头删、尾插、尾删 【其时间复杂度都是:O(1)】
void test_list2()
{listint lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);lt.push_back(5);for (const auto e : lt){cout e ;}cout endl;lt.pop_back();lt.pop_back();lt.push_front(1);lt.push_front(1);for (const auto e : lt){cout e ;}cout endl;lt.pop_front();lt.pop_front();for (const auto e : lt){cout e ;}cout endl;
}3、find\insert\erase
// find\insert\erase
//find 统一放置在STL的 algorithm里面了
void test_list3()
{listint 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【归并排序】
void test_list4()
{listint 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很大数据需要排序选择哪一种1vector 算法sort【底层是快排】 2list 自身sort【底层是归并排序】
// vector更具有优势int main()
{test_list4();return 0;
}