STL13-list容器(链表)

链表是由一系列的结点组成,结点包括两个域:一个数据域,一个指针域

1、链表内存是非连续的,添加删除元素效率较高,时间复杂度都是常数项,不需要移动元素

2、链表只有在需要的时候才会分配内存

3、链表只要拿到第一个结点,相当于拿到整个链表。最后一个结点指向为空

4、链表需要额外的空间保存结点关系。前驱 后继关系

#include<iostream>
#include<list>
using namespace std;
void PrintList(list<int> mlist4)
{for (list<int>::iterator it = mlist4.begin(); it != mlist4.end(); it++) {cout << *it << " ";}cout << endl;
}
//初始化
void test01() {list<int> mlist1;list<int> mlist2(10, 2);list<int> mlist3(mlist2);list<int> mlist4(mlist2.begin(),mlist2.end());for (list<int>::iterator it = mlist4.begin(); it != mlist4.end(); it++) {cout << *it << " ";}cout << endl;
}//插入和删除
void test02() {list<int> mlist;mlist.push_back(100);mlist.push_front(200);mlist.insert(mlist.begin(), 300);mlist.insert(mlist.end(), 400);list<int>::iterator it = mlist.begin();it++;it++;mlist.insert(it, 500);  //insert的第一个参数为迭代器cout << "-------------插入------------" << endl;PrintList(mlist);//删除mlist.pop_back();mlist.pop_front();cout << "-------------pop_back&&pop_front删除------------" << endl;PrintList(mlist);cout << "-------------erase第三个数删除------------" << endl;mlist.erase(it);PrintList(mlist);cout << "-------------remove100删除------------" << endl;mlist.push_back(100);mlist.push_front(100);PrintList(mlist);mlist.remove(100);  //delete all the number which the value 100PrintList(mlist);mlist.erase(mlist.begin(), mlist.end());  //equal to mlist.clear()PrintList(mlist);
}//大小,赋值操作
void test03() {list<int> mlist1,mlist3;mlist1.assign(10, 1);mlist3.assign(10, 3);list<int> mlist2;mlist2 = mlist1;mlist1.swap(mlist3);
}//排序 反转
void test04() {list<int> mlist;for (int i = 0; i < 10; i++){mlist.push_back(i);}PrintList(mlist);cout << "反转" << endl;mlist.reverse();PrintList(mlist);
}
bool myCompare05(int v1,int v2) {return v1 > v2;
}
//排序
void test05() {list<int> mlist;mlist.push_back(200);mlist.push_back(23);mlist.push_back(90);mlist.push_back(3434);PrintList(mlist);cout << "sort" << endl;mlist.sort();  //默认从小到大PrintList(mlist);//从大到小mlist.sort(myCompare05);PrintList(mlist);
}//算法sort 支持可随机访问的容器int main(int) {cout << "------------test01-------------" << endl;test01();cout << "------------test02-------------" << endl;test02();cout << "------------test03-------------" << endl;test03();cout << "------------test04-------------" << endl;test04();cout << "------------test05-------------" << endl;test05();return 0;
}

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/567926.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java调用el_[Java教程][javaEE] EL表达式调用java方法

[Java教程][javaEE] EL表达式调用java方法0 2016-07-03 18:00:031.新建个类&#xff0c;类里面定义静态方法package com.tsh.utils;import java.net.URLEncoder;public class ELFunc { public static String urlEncode(String str){ return URLEncoder.encode(str); }}2.在WEB-…

Leedcode8-reorder-list

#include<iostream> #include<vector> using namespace std; //Definition for singly-linked list. /*Given a singly linked list L : L 0→L 1→…→L n - 1→L n, reorder it to : L 0→L n →L 1→L n - 1→L 2→L n - 2→…*/ struct ListNode {int val;List…

java设计是什么软件下载_用Java设计下载软件

用Java设计下载软件HTTP 协议的简介HTTP协议是一种超文本传输协议(Hypertext Transfer Protocol)&#xff0c;工作于网络应用层&#xff0c;自1990年起广泛应用于WWW 的全球信息服务&#xff0c;HTTP协议的具体说明可以在网上查阅RFC2518、RFC2616等文档。HTTP 协议老的标准是H…

php 前往页面,PHP实现网页截图?

如何使用PHP实现网页截图PHP实现网页截图是一个在日常开发中不常见的需求&#xff0c;但是如果实现还是非常有意思的。目前业界有很多成熟的方案&#xff0c;下面我推荐使用一个很稳定的第三方服务来直接实现&#xff0c;该服务有如下特点&#xff1a;支持多线路支持登录截图支…

Leedcode9-linked-list-cycle-i

判断链表是不是循环链表 #include<iostream> #include<vector> using namespace std; /* Given a linked list, determine if it has a cycle in it. Follow up: Can you solve it without using extra space?*/ struct ListNode {int val;ListNode *next;ListNo…

Leedcode10-linked-list-cycle-ii

判断是不是循环链表&#xff0c;如果是&#xff0c;返回它的第一个结点 首先判断&#xff0c;判断完之后&#xff0c;遍历循环链表&#xff0c;将它的指针域置为空&#xff0c;则循环到链表的第一个结点时&#xff0c;由于指针域为空&#xff0c;返回 #include<iostream&g…

STL14-set/multiset容器

set只有一个方法就是insert #include<iostream> #include<set> //set和multiset是一个头文件 //set内部实现机制 红黑色&#xff08;平衡二叉树的一种&#xff09; //关联式容器 //set不允许有重复元素 //multiset运行有重复元素 //容器查找效率高 //容器根据元素的…

普通的java类型是指,String是一个很普通的类 - Java那些事儿

上一篇我们讲了Java中的数组&#xff0c;其实是为本章的内容做准备的&#xff0c;String这个类是我们在写Java代码中用得最多的一个类&#xff0c;没有之一&#xff0c;今天我们就讲讲它&#xff0c;我们打开String这个类的源码&#xff1a;声明了一个char[]数组&#xff0c;变…

STL15-map/multimap容器

map的key值不可以重复 multimap的key值可以重复 #if 1 #include<iostream> #include<map> using namespace std; //初始化 void test01() {//map容器参数 第一个参数key的类型 第二个参数value类型map<int, int> mymap;//插入元素 pair.first key值 pair.se…

php nginx日志分析,如何通过NGINX的log日志来分析网站的访问情况,试试这些命令...

想知道你的网站每天的访问情况吗&#xff1f;有多少人访问了&#xff1f;访问最多的页面是哪个&#xff1f;哪个时段访问的人最多&#xff1f;哪个地方访问的最多&#xff1f;每秒有多少请求&#xff1f;很好奇吧&#xff0c;只要你是使用了nginx进行请求抓发&#xff0c;那么就…

ajax获取表单php,Yii2基于Ajax自动获取表单数据的方法

本文实例讲述了Yii2基于Ajax自动获取表单数据的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;这里有两张表&#xff0c;表结构如下&#xff0c;locations表存放的省份和邮编等信息&#xff0c;两张表的model和curd均使用gii生成yii2advanced.customers表custome…

php response响应,9. 响应 (Response)

## 为什么单独创建一个Response?跟为什么要单独创建一个Request 一样。原因: 可以管理如: 在 swoole 不应该用 echo, 因为 swoole 是 cli 运行,只会输出在命令行。必须 只有一个地方能 输出响应 就是此篇的功能确保有 集中控制权 是非常重要 !(后面代码有 echo 都是不规范的, …

php带来互联网的影响,网络对我们的影响有哪些?

影响有&#xff1a;1、丰富了我们的业余生活&#xff1b;2、降低了获取知识的成本&#xff0c;降低了提升工作的能力的成本&#xff0c;提高了工作的效率&#xff0c;可以快速建立良好的人脉关系&#xff1b;3、让购物变得更加简单便捷&#xff1b;4、朋友间深度沟通与交流越来…

STL17-函数对象

仿函数&#xff1a; #include<iostream> #include<vector> #include<algorithm> using namespace std; //仿函数&#xff08;函数对象&#xff09;重载“&#xff08;&#xff09;”操作符 使类对象可以像函数那样调用 //仿函数是一个类&#xff0c;不是一个…

数据库操作php,一个数据库操作PHP类

/** Author 墨龙* Time 2010年12月2日 15:50:35*/$db new mysql($db_host,$db_user,$db_password,$db_table,$db_conn,$pre,$coding);class mysql{private $db_host;private $db_user;private $db_password;private $db_table;private $db_conn; //数据库连接标识;private $re…

STL18常用算法

#include<iostream> #include<algorithm> #include<vector> using namespace std; //transform 将一个容器中的元素搬运在另一个容器中 #if 0 //错误 struct PrintVector {void operator()(int v) {cout << v << " ";} }; void test0…

eclipse java ui,Eclipse Forms筹划漂亮UI之高级组件[Java编程]

赞助商链接本文“Eclipse Forms筹划漂亮UI之高级组件[Java编程]”是由七道奇为您精心收集&#xff0c;来源于网络转载&#xff0c;文章版权归文章作者所有&#xff0c;本站不对其观点以及内容做任何评价&#xff0c;请读者自行判断&#xff0c;以下是其具体内容&#xff1a;Ecl…

php中页面平滑回到顶部代码,原生JS实现平滑回到顶部组件

返回顶部组件是一种极其常见的网页功能&#xff0c;需求简单&#xff1a;页面滚动一定距离后&#xff0c;显示返回顶部的按钮&#xff0c;点击该按钮可以将滚动条滚回至页面开始的位置。实现思路也很容易&#xff0c;只要改变document.documentElement.scrollTop或document.bod…

C++基础01-C++对c的增强

所谓namespace&#xff0c;是指标识符的各种可见范围。C标准程序库中的所 有标识符都被定义于一个名为std的namespace中。 一 &#xff1a;<iostream>和<iostream.h>格式不一样&#xff0c;前者没有后缀&#xff0c;实际上&#xff0c; 在你的编译器include文件夹…

php环行队列实现,java数组实现队列及环形队列实现过程解析

这篇文章主要介绍了java数组实现队列及环形队列实现过程解析,文中通过示例代码介绍的非常详细&#xff0c;对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下代码内容ArrayQueue---用数组实现队列package com.structure;import java.util.Scanner;/*** auther:…