算法常用库函数——C++篇

张春  金牌会员 | 2024-12-29 22:36:10 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 844|帖子 844|积分 2532

前言

本文重要记载、整理、回顾在算法考试中常用的一些库函数,技巧等,不停更新中~
list 常用方法

在一般c++编程中,对于数组如许的数据布局,一般都使用vector居多,貌似list用的很少。但实际list也十分强盛,是STL 中的双向链表容器,特别是实用于一些频繁插入的一些操作。
使用案例:leetcode 56.合并区间
1. 初始化和构造



  • list<int> lst; 默认构造函数,创建一个空链表。
  • list<int> lst(n, value); 使用给定值 value 初始化链表,链表包含 n 个元素。
  • list<int> lst(first, last); 通过两个迭代器区间 [first, last) 初始化链表。
  • list<int> lst(lst2); 使用另一个 list 拷贝构造一个新的链表。
2. 根本操作



  • lst.size(); 返回链表中元素的个数。
  • lst.empty(); 检查链表是否为空,如果为空返回 true,否则返回 false。
  • lst.clear(); 清空链表,删除所有元素。
  • lst.front(); 返回链表的第一个元素。
  • lst.back(); 返回链表的最后一个元素。
3. 元素访问与修改



  • lst.push_front(value); 在链表的前面插入元素 value。
  • lst.push_back(value); 在链表的末尾插入元素 value。
  • lst.pop_front(); 删除链表的第一个元素。
  • lst.pop_back(); 删除链表的最后一个元素。
  • lst.insert(it, value); 在迭代器 it 所指向位置之前插入元素 value。
  • lst.erase(it); 删除迭代器 it 所指向的元素。
  • lst.erase(first, last); 删除从 first 到 last 范围的元素。
4. 查找与修改



  • lst.find(value); 查找链表中第一次出现的元素 value,返回指向该元素的迭代器,如果没有找到返回 lst.end()。
  • lst.remove(value); 删除链表中所有值为 value 的元素。
  • lst.remove_if(pred); 删除满足谓词 pred 的所有元素。
  • lst.reverse(); 反转链表中的元素顺序。
  • lst.sort(); 对链表中的元素举行排序。
  • lst.unique(); 删除链表中相邻的重复元素。
5. 拼接与操作



  • lst.splice(it, lst2); 将 lst2 中的所有元素插入到 lst 中,插入位置在迭代器 it 指向的位置之前。lst2 会变为空。
  • lst.splice(it, lst2, it2); 将 lst2 中 it2 指向的元素插入到 lst 中,插入位置是迭代器 it 指向的位置之前。
  • lst.splice(it, lst2, first, last); 将 lst2 中的从 first 到 last 范围的元素插入到 lst 中,插入位置是迭代器 it 指向的位置之前。
6. 迭代器操作



  • lst.begin(); 返回指向链表第一个元素的迭代器。
  • lst.end(); 返回指向链表末尾(一个越界位置)的迭代器。
  • lst.rbegin(); 返回指向链表最后一个元素的反向迭代器。
  • lst.rend(); 返回指向链表头部之前的一个反向迭代器。
  • advance(it, n); 让迭代器 it 向前移动 n 步。
  • it = lst.insert(it, value); 在迭代器 it 指向的位置插入元素 value,返回插入元素的新位置。
7. 其他辅助方法



  • lst.resize(n); 调整链表的巨细,如果 n 小于当前巨细,链表会被截断;如果大于当前巨细,会插入默认值。
  • lst.resize(n, value); 调整链表的巨细,并使用 value 添补新增的元素。
一连补充更新中~

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张春

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表