链表(系统学习)
时间:2019-10-07
本文章向大家介绍链表(系统学习),主要包括链表(系统学习)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<vector> #include<map> #include<cstdlib> #include<fstream> #include<time.h> #include<list> using namespace std; typedef long long LL; const LL mod=1e9+7; const LL INF=1e9+7; const int maxn=1e5+50; int main() { list<int>b;//构建一个空list cout<<b.empty()<<endl;//输出 1 list<int>a(10,1);//定义10个整形元素向量 初值都为1 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";//输出十个1 } cout<<endl; list<int>c(a);//把list a 全部赋值给 c for(list<int>::iterator it=c.begin();it!=c.end();it++) { cout<<*it<<" ";//输出十个1 } cout<<endl; cout<<a.size()<<endl;//大小 a.resize(5);//调整a的大小为5 cout<<a.size()<<endl; for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";//输出5个1 }cout<<endl; a.resize(10,2);//调整a的大小为10 多则删 少则补2 cout<<a.size()<<endl; for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";//输出5个1 5个2 }cout<<endl; a.push_back(3);// 尾部插入3 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";//输出5个1 5个2 一个3 }cout<<endl; a.insert(a.begin(),5);//指定位置前插入一个数 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";//输出一个5 5个1 5个2 一个3 }cout<<endl; a.insert(a.begin(),3,6);//在 指定位置前插入3个6 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";//输出三个6 一个5 5个1 5个2 一个3 }cout<<endl; a.push_front(7);//头部插入一个元素 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";//输出一个7 三个6 一个5 5个1 5个2 一个3 }cout<<endl; a.erase(a.begin());//删除指定位置元素 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";//输出一个7 三个6 一个5 5个1 5个2 一个3 }cout<<endl; a.erase(a.begin(),a.end());//删除两个迭代器之间的元素 for(int i=1;i<=10;i++) { a.push_back(i); } list<int>::iterator pos; pos=a.begin(); cout<<*pos<<endl;//输出1 advance(pos,5);//给迭代器指定一个位置 cout<<*pos<<endl;// a.pop_back();//删除尾部元素 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";// }cout<<endl; a.pop_front();//删除头部元素 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";// }cout<<endl; a.assign(10,100);//重新赋值 以前的清空 赋值10个100 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";// }cout<<endl; cout<<a.front()<<endl;//返回第一个数 cout<<a.back()<<endl;//返回最后一个数 a.clear();//清空链表 a.assign(10,5); b.assign(10,6); for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";// }cout<<endl; for(list<int>::iterator it=b.begin();it!=b.end();it++) { cout<<*it<<" ";// }cout<<endl; a.swap(b);//交换两个链表的内容 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";// }cout<<endl; for(list<int>::iterator it=b.begin();it!=b.end();it++) { cout<<*it<<" ";// }cout<<endl; a.clear(); for(int i=1;i<=5;i++) { a.push_back(i); } b.clear(); for(int i=1;i<=5;i++) { b.push_back(i*10); } pos=a.begin(); ++pos; a.splice(pos,b);//在指定位置前插入b链表 并且把b链表变为空 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";// }cout<<endl; for(list<int>::iterator it=b.begin();it!=b.end();it++) { cout<<*it<<" ";// }cout<<endl; b.splice(b.begin(),a,pos);//将a的第pos个位置的数赋值给b 同时a中删除这个元素 for(list<int>::iterator it=b.begin();it!=b.end();it++) { cout<<*it<<" ";// }cout<<endl; for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";// }cout<<endl; a.reverse();//反转 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";// }cout<<endl; a.sort();//从小到大排序 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";// }cout<<endl; a.unique();//删除重复元素 a.merge(b); for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";// }cout<<endl; return 0; }
原文地址:https://www.cnblogs.com/caijiaming/p/11631106.html
- Codeforces Beta Round #1 A,B,C
- 线性分类器-中篇
- isupper()函数
- HDU 5882 Balanced Game
- 超级玛丽游戏
- POJ 3673 Cow Multiplication
- HDU 5144 NPY and shot(物理运动学+三分查找)
- 深度|Python股票数据分析
- HDU 2438 Turn the corner(三分查找)
- UVAlive 3708 Graveyard(最优化问题)
- HDU 1754 I Hate It(线段树之单点更新,区间最值)
- Selenium2+python自动化19-单选和复选框
- Uva 11300 Spreading the Wealth(递推,中位数)
- Uva 11729 Commando War (简单贪心)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- TensorBoard可视化
- Java自动化测试(Maven 8)
- Java自动化测试(HashSet和HashMap 7)
- 构建模型的3种方法
- 训练模型的3种方法
- 干货 | 携程APP/Web功能和视觉测试平台-Watcher
- FPGA中的亚稳态
- 蜂鸟E203系列——定时器中断设计
- FPGA信号截位策略
- 数字IC设计经典笔试题之【verilog篇】
- 蜂鸟E203系列——Windows下运行hello world例程
- 蜂鸟E203系列——Windows开发工具
- FPGA奇数分频
- 形式化分析工具:在虚拟操作系统和主机操作系统之间配置共享文件夹
- 「PHP」以nginx、php-cgi为例,把nginx、php-cgi安装为Windows系统服务