cb02a_c++_数据结构_顺序容器_STL_list类_双向链表
/*cb02a_c++_数据结构_顺序容器_STL_list类_双向链表
实例化std::list对象
在list开头插入元素
在list末尾插入元素
在list中间插入元素,插入时间恒定,非常快。数组:中间插入慢。
删除list中的元素
对list中元素进行反转和排序
通过指针指向下一个节点
//链表不是数组,没有下标。只能使用迭代器
*/
/*cb02a_c++_数据结构_顺序容器_STL_list类_双向链表
实例化std::list对象
在list开头插入元素
在list末尾插入元素
在list中间插入元素,插入时间恒定,非常快。数组:中间插入慢。
删除list中的元素
对list中元素进行反转和排序 通过指针指向下一个节点
//链表不是数组,没有下标。只能使用迭代器
*/ #include <iostream>
#include <list> using namespace std; void PrintListContents(const list<int>& listInput); int main()
{
list <int> a;//list也是一个模板类,a就是双向链表
a.push_front();//链表前端添加数据
a.push_front();
a.push_front();
a.push_front();
a.push_back();//链表后端添加数据 //a.insert(a.begin(), 10);//在开头的前面插入10。 a.begin()就是迭代器 list<int> b;
b.push_back();
b.push_back();
b.push_back();
b.push_back();
b.push_back(); //链表不是数组,没有下标
std::list<int>::iterator iter;//迭代器就是指针 iter = a.begin();
a.insert(iter, );//在开头的前面插入11。
a.insert(a.end(), , );//在后端插入3个30,a.end()就是迭代器 ++iter;
a.insert(iter, );//在开头的下一个位置插入11.++iter指针移动了位置
//a.insert(a.end(), b.begin(), b.end());//把list b的数据全部插入到list a的末尾 a.insert(a.end(),++b.begin(),--b.end());//b的第二个位置数据到 b结尾倒数一个数。一起插入 cout << "show list a data..." << endl;
PrintListContents(a); /*for (iter = a.begin(); iter != a.end(); ++iter)
{
cout << *iter << endl;
}*/
cout << "show list b data" << endl;
PrintListContents(b); return ;
}
void PrintListContents(const list<int>& listInput)
{
std::list<int>::const_iterator iter;
for (iter = listInput.begin(); iter != listInput.end(); ++iter)
cout << *iter << endl;
}
/*cb02b_c++_ */ /*cb02a_c++_数据结构_顺序容器_STL_list类_双向链表
实例化std::list对象
在list开头插入元素
在list末尾插入元素
在list中间插入元素,插入时间恒定,非常快。数组:中间插入慢。
删除list中的元素
对list中元素进行反转和排序 通过指针指向下一个节点
//链表不是数组,没有下标。只能使用迭代器
*/ #include <iostream>
#include <list> using namespace std; void PrintListContents(const list<int>& listInput); int main()
{
std::list<int> a;
a.push_front();
a.push_front(); list<int>::iterator iElementValueTwo;
iElementValueTwo = a.insert(a.begin(),);//insert返回一个迭代器,指向2.
a.push_front();
a.push_front(); PrintListContents(a);// //iElementValueTwo--迭代器,指向2.
a.erase(iElementValueTwo);//删除一个元素:2
cout << "把2删除后显示:" << endl;
PrintListContents(a);// //a.erase(a.begin(), iElementValueTwo);//从开始到2,2不包括。删除。
a.erase(iElementValueTwo, a.end());//从2开始直到最后的所有数据,删除。 return ;
}
void PrintListContents(const list<int>& listInput)
{
std::list<int>::const_iterator iter;
for (iter = listInput.begin(); iter != listInput.end(); ++iter)
cout << *iter << endl;
}
/*cb02c_c++_反转和排序 */ /*cb02a_c++_数据结构_顺序容器_STL_list类_双向链表
实例化std::list对象
在list开头插入元素
在list末尾插入元素
在list中间插入元素,插入时间恒定,非常快。数组:中间插入慢。
删除list中的元素
对list中元素进行反转和排序 通过指针指向下一个节点
//链表不是数组,没有下标。只能使用迭代器
*/ #include <iostream>
#include <list> using namespace std; void PrintListContents(const list<int>& listInput); int main()
{
std::list<int> a;
a.push_front();
a.push_front();
a.push_front();
a.push_front();
a.push_front(); PrintListContents(a); //翻转
cout << "数据翻转: " << endl;
a.reverse();
PrintListContents(a); cout << "链表数据排序:" << endl;
a.sort();
PrintListContents(a); return ;
}
void PrintListContents(const list<int>& listInput)
{
std::list<int>::const_iterator iter;
for (iter = listInput.begin(); iter != listInput.end(); ++iter)
cout << *iter << endl;
}
cb02a_c++_数据结构_顺序容器_STL_list类_双向链表的更多相关文章
- cb01a_c++_数据结构_顺序容器_STL_deque类
/*cb01a_c++_数据结构_顺序容器_STL_deque类deque是一个动态数组,比vector更加灵活.两者都属于动态数组deque与vector非常类似deque可以在数组开头和末尾插入和 ...
- cb16a_c++_顺序容器的选用_排序_二分查找
/*cb16a_c++_顺序容器的选用_排序_二分查找顺序容器: 1.vector的优点与缺点 vector优点:排序利用下标,快速排序,做二分查找非常快 2.list的优点与缺点 list优点:插入 ...
- cb09a_c++_顺序容器的操作2-在顺序容器中添加元素_插入数据
cb09a_c++_顺序容器的操作2在顺序容器中添加元素vector不能向前插入数据,list可以用insertc.push_back(t);c.push_front(t);c.insert(p,t) ...
- cb03a_c++_数据结构_顺序容器_STL_stack
/*cb03a_c++_数据结构_顺序容器_STL_stack堆栈:LIFO--Last In First Out后进先出,用于系统程序设计自适应容器(容器适配器),不是独立的容器,是一个适配器栈适配 ...
- cb06a_c++_顺序容器的定义
/*cb06a_c++_顺序容器的定义顺序容器:vector,数组,尾端操作数据,快速随机访问list 链表,快速插入数据deque数组,双端-首尾操作数据,方便两端的数据访问 顺序容器适配器:sta ...
- cb22a_c++_标准模板库_STL_map_multimap红黑树(数据结构)关联容器
cb22a_c++_标准模板库_STL_map_multimap红黑树(数据结构)关联容器map(映射,key不能重复,一对一对的,value_type(1, "one")),mu ...
- cb14a_c++_顺序容器的操作7_赋值与交换(swap)_vector转list
cb14a_c++_顺序容器的操作7_赋值与交换(swap) vector数据赋值给list, slist.assign(svec.begin(), svec.end());//这样可以转 svec- ...
- ca13a_c++_顺序容器的操作6删除元素
/*ca13a_c++_顺序容器的操作6删除元素c.erase(p) //删除迭代器p指向的位置c.erase(b,e) //删除b to e之间的数据,迭代器b包括,e不包括c.clear()//删 ...
- cb11a_c++_顺序容器的操作4_容器大小操作_resize-max_size
cb11a_c++_顺序容器的操作4 2 容器大小的操作 3 c.size() 容器当前的个数 4 c.max_size(),容器最大存储量 5 c.empty() 是否为空 6 c.resize(n ...
随机推荐
- ajax 请求PHP返回json格式的处理
php返回代码格式 public function json(){ if (request()->isAjax()){ $data = [ 'code'=>'1', 'msg'=>' ...
- Docker 入门:Dockerfile
主要内容: 什么是 Dockerfile 查看 DockerHub 中镜像的 Dockerfile Dockerfile 编写 Dockerfile 常用命令 什么是 Dockerfile 使用 Do ...
- php日志监控
<?php date_default_timezone_set('Asia/Shanghai'); $time = date('Y-m-d H:i:s',time()); //访问时间 $ip ...
- $工具, 属性, TAB点击切换
$工具方法 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <tit ...
- 02 . Redis哨兵
Redis高可用概述 在 Web 服务器中,高可用 是指服务器可以 正常访问 的时间,衡量的标准是在 多长时间 内可以提供正常服务(99.9%.99.99%.99.999% 等等).在 Redis ...
- 动态ip服务器 动态ip服务器的连接方式
动态IP服务器指的是在需要的时候才进行随机IP地址分配的服务器.所谓动态就是指当你每一次上网时,电信会随机分配一个IP地址,服务器作为我们设为的大脑,拥有自己独立的账户及密码,通过远程连接动态IP服务 ...
- Spring boot Sample 001之spring-boot-begin-hello
一.环境 1.1.Idea 2020.1 1.2.JDK 1.8 二.目的 初识Spring Boot 三.步骤 3.1.点击File -> New Project -> Spring I ...
- 附021.Traefik-ingress部署及使用
一 Helm部署 1.1 获取资源 [root@master01 ~]# mkdir ingress [root@master01 ~]# cd ingress/ [root@master01 ing ...
- kubeadm实现k8s高可用集群环境部署与配置
高可用架构 k8s集群的高可用实际是k8s各核心组件的高可用,这里使用主备模式,架构如下: 主备模式高可用架构说明: 核心组件 高可用模式 高可用实现方式 apiserver 主备 keepalive ...
- (Java实现) 细胞
细胞 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Total Submission(s ...