0
点赞
收藏
分享

微信扫一扫

C++ ───List的使用

追梦人的自留地 2024-07-24 阅读 40

目录

1.1 list的介绍

1.2 list的使用

1.2.1 list的构造

1.2.2 list iterator的使用

1.2.3 list capacity

1.2.4 list element access

1.2.5 list modifiers

1.2.6 list的迭代器失效


1.1 list的介绍

list<int> lt1={1,2,3,7,5,4};
lt1.sort();//排升序

lt1.sort(greater<int>());//排降序
先排序,后去重
lt1.unipue();//去重


拷贝到vector
vector<int>  v1(lt1.begin() , lt1.end());
sort(v1.begin() ,v1.end());
拷贝回list
lt2.assign(v1.begin() ,v1.end());

1.2 list的使用

1.2.1 list的构造

1.2.2 list iterator的使用

【注意】

1. begin与end为正向迭代器,对迭代器执行++操作,迭代器向后移动

2. rbegin(end)与rend(begin)为反向迭代器,对迭代器执行++操作,迭代器向前移动

1.2.3 list capacity

1.2.4 list element access

1.2.5 list modifiers

1.2.6 list的迭代器失效

​
void TestListIterator1()
{
     int array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
     list<int> l(array, array+sizeof(array)/sizeof(array[0]));
 
     auto it = l.begin();
     while (it != l.end())
     {
         // erase()函数执行后,it所指向的节点已被删除,因此it无效,在下一次使用it时,必须先给
    其赋值
         l.erase(it); 
         ++it;
     }
}

// 改正
void TestListIterator()
{
     int array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
     list<int> l(array, array+sizeof(array)/sizeof(array[0]));
 
     auto it = l.begin();
     while (it != l.end())
     {
         l.erase(it++); // it = l.erase(it);
     }
}

​

这个博客如果对你有帮助,给博主一个免费的点赞就是最大的帮助

欢迎各位点赞,收藏和关注哦

如果有疑问或有不同见解,欢迎在评论区留言哦

后续我会一直分享双一流211西北大学软件(C,数据结构,C++,Linux,MySQL)的学习干货以及重要代码的分享

举报

相关推荐

0 条评论