1.STL list
- 初始化一个链表
list<int> mylist{ ,,,, };
- 链表排序
mylist.sort();
- 链表反转
mylist.reverse();
- 链表删除头部和尾部
mylist.pop_back();//删除尾部
mylist.pop_front();//删除头部 - 链表头部与尾部添加
mylist.push_front();//头部添加
mylist.push_back();//尾部添加 - 重新初始化链表,通过数组或给定数据
mylist.assign(, );//重新初始化链表,3个5
//通过数组初始化
int a[] = { ,,,,,,,, };
mylist.assign(a,a+); - 输出链表
for (auto i : mylist)
{
cout << i << endl;
} - 正向迭代,与插入和删除数据
//正向迭代器
for (auto ib = mylist.begin(), ie = mylist.end(); ib != ie; ib++)
{
if (*ib == )
{
//插入数据
//mylist.insert(ib, 123);
//删除数据
mylist.erase(ib);
break;
}
cout << *ib << endl;
} - 反向迭代器
//反向迭代器
for (auto rb = mylist.rbegin(), re = mylist.rend(); rb != re; rb++)
{
cout << *rb << endl;
} - 链表第一个数据和最后一个数据,以及链表元素的个数
cout << "第一个数据:" << mylist.front() << endl;
cout << "最后一个数据:" << mylist.back() << endl;
cout << "个数:" << mylist.size() << endl; - 链表合并(合并前要先排序)
list<int> mylist{ ,,,, };
list<int> mylist2{ ,, };
//链表合并
mylist.sort();
mylist2.sort();
mylist.merge(mylist2); - 链表清空
mylist.clear();
- 链表嵌套
list<int> mylist1{ ,,,, };
list<int> mylist2{ ,,,, };
list<int> mylist3{ ,,,, };
list<list<int>> mylist{ mylist1,mylist2,mylist3 };
for (auto i : mylist)
{
for (auto j : i)
{
cout << j << " ";
}
cout << endl;
}
cin.get();
1.STL list的更多相关文章
- 详细解说 STL 排序(Sort)
0 前言: STL,为什么你必须掌握 对于程序员来说,数据结构是必修的一门课.从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来.幸运的是这些理论都已经比较成熟,算 ...
- STL标准模板库(简介)
标准模板库(STL,Standard Template Library)是C++标准库的重要组成部分,包含了诸多在计算机科学领域里所常见的基本数据结构和基本算法,为广大C++程序员提供了一个可扩展的应 ...
- STL的std::find和std::find_if
std::find是用来查找容器元素算法,但是它只能查找容器元素为基本数据类型,如果想要查找类类型,应该使用find_if. 小例子: #include "stdafx.h" #i ...
- STL: unordered_map 自定义键值使用
使用Windows下 RECT 类型做unordered_map 键值 1. Hash 函数 计算自定义类型的hash值. struct hash_RECT { size_t operator()(c ...
- C++ STL简述
前言 最近要找工作,免不得要有一番笔试,今年好像突然就都流行在线笔试了,真是搞的我一塌糊涂.有的公司呢,不支持Python,Java我也不会,C有些数据结构又有些复杂,所以是时候把STL再看一遍了-不 ...
- codevs 1285 二叉查找树STL基本用法
C++STL库的set就是一个二叉查找树,并且支持结构体. 在写结构体式的二叉查找树时,需要在结构体里面定义操作符 < ,因为需要比较. set经常会用到迭代器,这里说明一下迭代器:可以类似的把 ...
- STL bind1st bind2nd详解
STL bind1st bind2nd详解 先不要被吓到,其实这两个配接器很简单.首先,他们都在头文件<functional>中定义.其次,bind就是绑定的意思,而1st就代表fir ...
- STL sort 函数实现详解
作者:fengcc 原创作品 转载请注明出处 前几天阿里电话一面,被问到STL中sort函数的实现.以前没有仔细探究过,听人说是快速排序,于是回答说用快速排序实现的,但听电话另一端面试官的声音,感觉不 ...
- STL的使用
Vector:不定长数组 Vector是C++里的不定长数组,相比传统数组vector主要更灵活,便于节省空间,邻接表的实现等.而且它在STL中时间效率也很高效:几乎与数组不相上下. #include ...
- [C/C++] C/C++延伸学习系列之STL及Boost库概述
想要彻底搞懂C++是很难的,或许是不太现实的.但是不积硅步,无以至千里,所以抽时间来坚持学习一点,总结一点,多多锻炼几次,相信总有一天我们会变得"了解"C++. 1. C++标准库 ...
随机推荐
- 如何设置eclipse代码自动提示功能
如何设置eclipse代码自动提示功能 我们在刚安装完使用eclipse进行开发时,会发现没有代码提示会非常的不方便,下面小编将告诉你如何进行代码自动提示的设置. 工具/原料 eclipse 电脑 ...
- 关于iOS适配问题
大家都知道在iOS开发当中对于UI适配问题可以从如下两个方面去考虑: 1.比例适配 2.利用autolayout自动布局 通常情况来说,利用auto自动布局是一个比较好的方案,开发者可以利用story ...
- vue子组件使用指令 同时绑定v-model 指令没有作用
//这里直接上代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- Redis缓存Mysql模拟用户登录Java实现实例
https://blog.csdn.net/suneclipse/article/details/50920396
- healthcheck
-- ============================================================================= -- USAGE : sqlplus ...
- [JSOI2007]建筑抢修 优先队列 贪心
Code: #include<cstdio> #include<algorithm> #include<cstring> #include<queue> ...
- 新人 记录VUE中分页实现
关于函数传值 this.getPurchaseHistoryData(index, num,timeType);第一位是显示的页数,第二是控制首页4上一页-1下一页是2末页是5 第三是是对昨天是1,今 ...
- mysql-5.7.25安装及常用语法
我下的是免安装版的压缩文件包,可以选择下载.msi的程序包,那样就可以通过常见的图形界面来进行安装配置了 参考链接:https://blog.csdn.net/qq_23994787/article/ ...
- C# 快捷使用自定义配置节点
C#除了appSettings和connectionStrings默认配置外还允许用户自定义使用配置.C# 提供3中简单的自定义配置,配置文件如下 <?xml version="1.0 ...
- iOS 实现QQ界面
应师傅要求编写个QQ界面来不吝赐教下我的代码问题. 编写个QQ界面.有三个组,每一个组有人.并显示在线不在线. 先看一下效果图 这里省了事由于我的图片仅仅用了一张.假设要依据人的不同设置,仅仅要在ce ...