C++笔记之list使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Albert201605/article/details/82950351

list为双向链表,头文件#include<list>

1.基本操作

插入:首端、尾端、中间(通过迭代器)
查找:没有成员函数,只能通过find(ilist.begin(),ilist.end(),1),返回迭代器
删除:首端、尾端、中间(通过迭代器)
排序:成员函数ilist.sort(),默认升序
倒转:ilist.reverse(),元素倒转 
判空:ilist.empty(),若为空,返回1;若不空,返回0.
清空:ilist.clear(). 

2.函数列表

ilist.assign() 给list赋值 

ilist.begin() 返回指向第一个元素的迭代器 

ilist.end() 返回末尾的迭代器 

ilist.rbegin() 返回指向第一个元素的逆向迭代器 

ilist.rend() 指向list末尾的逆向迭代器 

ilist.clear() 删除所有元素 

ilist.empty() 如果list是空的则返回true 

ilist.push_back() 在list的末尾添加一个元素 

ilist.push_front() 在list的头部添加一个元素 

ilist.front() 返回第一个元素 

ilist.pop_front() 删除第一个元素 

ilist.back() 返回最后一个元素 

ilist.pop_back() 删除最后一个元素 

ilist.remove() 从list删除元素 

ilist.remove_if() 按指定条件删除元素 

ilist.get_allocator() 返回list的配置器 

ilist.insert() 插入一个元素到list中 

ilist.max_size() 返回list能容纳的最大元素数量 

ilist.merge() 合并两个list 

ilist.resize() 改变list的大小 

ilist.size() 返回list中的元素个数 

ilist.sort() 给list排序 

ilist.reverse() 把list的元素倒转 

ilist.splice() 合并两个list 

ilist.swap() 交换两个list 

ilist.unique() 删除list中重复的元素

3.程序示例

#include<iostream>
#include<list>
#include<algorithm> 
using namespace std;

int main(){
	
	list<int> ilist;
	list<int>::iterator it;
	 
	//插入
	ilist.push_back(1);//尾端插入 
	ilist.push_back(2);
	ilist.push_back(6);
	ilist.push_back(9);
	ilist.push_front(3);//头部插入
	ilist.push_front(4);
	ilist.push_front(7);
	ilist.push_front(8);
	//查找 
	it=find(ilist.begin(),ilist.end(),1);
	it=ilist.insert(it,5);//中间插入
	cout<<"it位置:"<<*it<<endl;
	
	//输出
	cout<<"list大小:"<<ilist.size()<<endl; 
	for(it=ilist.begin();it!=ilist.end();it++) cout<<*it<<' ';
	cout<<endl<<endl;
	
	
	//删除
	cout<<"删除头元素:"<<ilist.front()<<endl;//返回头元素 
	ilist.pop_front();                //删除头元素 
	cout<<"删除尾元素:"<<ilist.back()<<endl;//返回尾元素 
	ilist.pop_back();                 //删除尾元素 
	it=find(ilist.begin(),ilist.end(),3);	
	cout<<"删除中间元素:"<<*it<<endl;
	ilist.erase(it);                  //删除中间的4 
	cout<<"删除中间元素:1"<<endl; 
	ilist.remove(1);                 //直接删除元素 
	
	cout<<"删除后list大小:"<<ilist.size()<<endl; 
	for(it=ilist.begin();it!=ilist.end();it++) cout<<*it<<' ';
	cout<<endl<<endl;
	
	//排序
	ilist.sort();//默认升序 
	cout<<"默认排序:"; 
	for(it=ilist.begin();it!=ilist.end();it++) cout<<*it<<' ';
	cout<<endl;
	cout<<"反向输出:";
	ilist.reverse();//元素倒转 
	for(it=ilist.begin();it!=ilist.end();it++) cout<<*it<<' ';
	cout<<endl<<endl;	
	/*
	list<int> ilist2(ilist.rbegin(),ilist.rend());
	for(it=ilist2.begin();it!=ilist2.end();it++) cout<<*it<<' ';		
	*/
	
	//判空、清空
	cout<<"list空吗:"<<ilist.empty()<<endl;
	ilist.clear();
	cout<<"list空吗:"<<ilist.empty()<<endl;	 
	
	return 0;
} 

运行结果:


参考

https://blog.csdn.net/fanyun_01/article/details/56881515

猜你喜欢

转载自blog.csdn.net/Albert201605/article/details/82950351