//list和map容器使用
//基本操作与vector基本相同 list迭代器没有随机访问的能力 只能递增或者递减 取值等操作
//插入和删除操作都不会使原有的迭代器失效,这在vector中是不可能实现的
//list是一个双向循环链表 指针可以往前走也可以往后走
list<people>l;
people l1(10, "xiaoming");
people l2(20, "liming");
people l3(30, "zhangming");
people l4(40, "xiaohua");
people l5(50, "lihua");
people l6(60, "xiaoli");
people l7(60, "xiaoli");
people l8(60, "xiaoli");
people l9(60, "xiaoli");
people l10(70, "xiaoai");
people l11(70, "xiaoai");
l.push_back(l1);
l.push_back(l2);
l.push_back(l3);
l.push_back(l4);
l.push_back(l5);
l.push_back(l6);
l.push_back(l7);
l.sort(mycompare); //对于自定义类型的数据 要给定排序顺序
for (auto iter = l.begin(); iter != l.cend(); iter++)
{
cout << (*iter).age << endl;
cout << (*iter).name<< endl;
}
//list高级排序 多条件进行排序
list<person>m;
person m1(10, "xiaoming", 22);
person m2(20, "liming", 33);
person m3(30, "zhangming", 44);
person m4(40, "xiaohua", 55);
person m5(50, "lihua", 55);
person m6(60, "xiaoli", 55);
person m7(60, "xiaoli", 76);
person m8(60, "xiaoli", 56);
person m9(60, "xiaoli", 66);
person m10(70, "xiaoai", 55);
person m11(70, "xiaoai", 77);
m.push_back(m1);
m.push_back(m2);
m.push_back(m3);
m.push_back(m4);
m.push_back(m5);
m.push_back(m6);
m.push_back(m7);
m.push_back(m8);
m.push_back(m9);
m.push_back(m10);
m.push_back(m11);
m.sort(mycompare2); //对于自定义类型的数据 对多个条件进行排序
for (auto iter = m.begin(); iter != m.end(); iter++)
{
cout << (*iter).age<<" " << (*iter).name<<" " <<(*iter).length<<endl;
}
//m.erase(m4);
//容器删除自定义类型的时候要在类内重载等号操作符 本质上删除操作是遍历迭代器并且进行判等操作
list容器(follow_vector)
最新推荐文章于 2024-05-01 19:10:24 发布