首页 > 其他分享 >【STL】list的基本操作

【STL】list的基本操作

时间:2024-03-18 14:45:27浏览次数:30  
标签:STL auto list 链表 int ls c2 基本操作

#include<bits/stdc++.h>
using namespace std;
const int MAXN=2e5+10;
bool cmp(int x,int y){
	return x>y;
}
signed main(){
	list<int>lst;//建立
	for(int i=1;i<=6;i++){
		lst.push_back(i);
	}//尾插
	for(int i=10;i>=8;i--){
		lst.push_front(i);
	}//头插

	cout<<lst.size()<<endl;//尺寸
	lst.resize(1);//更改尺寸

	for(auto i:lst){
		cout<<i<<' ';
	}//发现减小尺寸之后只保留第一个,其余全部丢失
	cout<<endl;
	
	lst.resize(8);
	for(auto i:lst){
		cout<<i<<' ';
	}
	cout<<endl;//发现扩大尺寸之后新的部分填充为0

	int a[6]={00,22,11,33,44,55};
	list<int>la(a+1,a+3);//开始的位置 结束的下一个(左闭右开
	for(auto i:la){
		cout<<i<<' ';
	}
	cout<<endl;//用数组进行初始化list

	lst.insert(++++++lst.begin(),2);// 任意位置插入一个元素 ++往后推一个
	for(auto i:lst){
		cout<<i<<' ';
	}
	cout<<endl;

	swap(lst,la);//交换两个同类型容器的元素
	for(auto i:lst){
		cout<<i<<' '; 
	}
	cout<<endl;

	la.unique();//删除容器中相邻的重复元素
	for(auto i:la){
		cout<<i<<' ';
	}
	cout<<endl;
	cout<<la.size()<<endl;

	list<int>ll1;
	for(int i=1;i<=10;i++)ll1.push_back(i);
	list<int>ll2;
	for(int i=-6;i<=2;i++)ll2.push_back(i);
	ll1.merge(ll2,cmp);//合并2个有序的链表并使之有序,从新放到lst里,释放la。
	//如果cmp函数与这两个链表的排序方式不同或链表无序,会直接简单拼接
	for(auto i:ll1){
		cout<<i<<' ';
	}
	cout<<endl;
	cout<<ll2.size()<<endl;

	list<int>ls{0,1,4,8};
	list<int>lls{9,8,7,55};
	ls.splice(ls.end(),lls);  //    将c2连接在c1的beg位置,释放c2
	for(auto i:ls){
		cout<<i<<' ';
	}
	cout<<endl;

	list<int>re(ls);//直接用链表初始化链表
	for(auto i:re){
		cout<<i<<' ';
	}
	cout<<endl;

	re.reverse();//指定链表的反转
	for(auto i:re){
		cout<<i<<' ';
	}
	cout<<endl;
}

标签:STL,auto,list,链表,int,ls,c2,基本操作
From: https://www.cnblogs.com/muyi-meow/p/18080356

相关文章

  • 【STL】 C++常用容器介绍系列(一)----(map、set、stack)
    目录一、map系列1、map介绍2、unordered_map介绍3、map和unordered_map的选择二、set系列1、set介绍2、unordered_set介绍3、set和unordered_set的选择三、如何遍历和查询map和set1、map的遍历2、map的查询3、set的遍历4、set的查询四、stack介绍和操作stack的方......
  • 你还在用for循环遍历list吗?
    简介Java8API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream使用一种类似用SQL语句从数据库查询数据的直观方式来提供一种对Java 集合运算​和表达的高阶抽象。这种风格将要处理的元素集合看作一种流,流在管道中传输,并且可以在管道的节......
  • dev CheckedListBoxControl 名称前添加图标
    1、先在工程中添加ImageCollection控件:imageCollection12、绑定控件    chklistNames.HtmlImages=imageCollection1;3、chklistNames中的CheckedListBoxControl中AllowHtmlDraw属性设为truechklistNames.AllowHtmlDraw=Default.Boolean.True;4、图标转......
  • 熟悉使用list
    list的介绍1.list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。2.list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。3.list与forward_list非常相似:最主要......
  • STL容器之list类
    文章目录STL容器之list类1、list的介绍2、list的使用2.1、list的常见构造2.2、list的iterator的使用2.3、list空间增长问题2.4、list的增删查改2.5、list迭代器失效问题3、list的模拟实现(含反向迭代器)STL容器之list类1、list的介绍list是序列容器,允许在序列中......
  • 【Python/Numpy】list/tuple/dictionary/numpy 的操作
    CommonDataStructuresListsListsaremutablearrays.普通操作#Twowaystocreateanemptylistempty_list=[]empty_list=list()#Createalistthatcontainsdifferentdatatypes,thisisallowedinPythonmylist=["aa","bb",1,2......
  • NC(netcat)基本操作
    NC(netcat)基本操作前提:凭空是无法打开端口,那么我们就可以使用nc这个工具开启我们想要开放的端口。想开什么端口就可以开什么端口让别人进入。nc的启用Windows端nc使用方法Kali端nc使用方法基本使用方法一、监听/聊天工具方法:kali上使用nc去连接Windows7上的8000端......
  • LinkedList源码解析和设计思路
    一、继承体系LinkedList类位于java.util包中,它实现了List接口和Deque接口,LinkedList可以被当做链表、双端队列使用,并且继承自AbstractSequentialList类。在继承关系中,它的父类是AbstractSequentialList,而AbstractSequentialList又继承自AbstractList,AbstractList继承自Abs......
  • 数据结构知识总结笔记------第四章:串(1)串的定义、存储结构、基本操作
    1、串的定义串是由零个或者多个字符组成的有限序列。串中字符的个数称为串的长度,含有零个元素的串叫空串。在C语言中,可以用以下语句定义一个名为str的串。charstr[]="abcdef";说明:串通常用一个字符数组来表示。从这个角度来讲,数组str内存储的字符为’a’、‘b’、‘c’......
  • 链表 Linked List
    2024.3.15芝士wa参考视频:bilibli-数据结构-链表“印度小哥讲得真好”链表对于链表来说,存储数据需要两个部分,一是数据本身,二是指针,该指针指向下一个数据的地址,依次链接,直到最后一个元素,指针指向空(NULL)遍历的时间复杂度为O(n)插入的时间复杂度为O(n)删除的时间复......