list

一、List定义:

List是stl实现的双向链表,与向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢。使用时需要添加头文件

#include <list>

二、List定义和初始化:

    list<int>lst1;          //创建空list

    list<int> lst2(5);       //创建含有5个元素的list

    list<int>lst3(3,2);  //创建含有3个元素的list

    list<int>lst4(lst2);    //使用lst2初始化lst4

    list<int>lst5(lst2.begin(),lst2.end());  //同lst4

三、List常用操作函数:

Lst1.assign() 给list赋值 
Lst1.back() 返回最后一个元素 
Lst1.begin() 返回指向第一个元素的迭代器 
Lst1.clear() 删除所有元素 
Lst1.empty() 如果list是空的则返回true 
Lst1.end() 返回末尾的迭代器 
Lst1.erase() 删除一个元素 
Lst1.front() 返回第一个元素 
Lst1.get_allocator() 返回list的配置器 
Lst1.insert() 插入一个元素到list中 
Lst1.max_size() 返回list能容纳的最大元素数量 
Lst1.merge() 合并两个list 
Lst1.pop_back() 删除最后一个元素 
Lst1.pop_front() 删除第一个元素 
Lst1.push_back() 在list的末尾添加一个元素 
Lst1.push_front() 在list的头部添加一个元素 
Lst1.rbegin() 返回指向第一个元素的逆向迭代器 
Lst1.remove() 从list删除元素 
Lst1.remove_if() 按指定条件删除元素 
Lst1.rend() 指向list末尾的逆向迭代器 
Lst1.resize() 改变list的大小 
Lst1.reverse() 把list的元素倒转 
Lst1.size() 返回list中的元素个数 
Lst1.sort() 给list排序 
Lst1.splice() 合并两个list 
Lst1.swap() 交换两个list 
Lst1.unique() 删除list中重复的元素

部分示例:

#include <iostream>
#include <cstdio>
#include <list>
using namespace std;
#define N 5

void pl(list<int> l)
{
	int i;
	list<int>::iterator i1;
	for (i1=l.begin();i1!=l.end();i1++)
	{
		printf("%3d",*i1);
	}
	printf("\n");
 } 
 
int main()
{
	int i;
	list<int> l1;//创建空list
    list<int> l2(N);//创建含有N个元素的list
    list<int> l3(N,2);//创建含有N个元素的list 
	pl(l1);
	pl(l2);
	pl(l3);
	
	for (i=0;i<N;i++)
	{
		l1.push_back(i);//添加值  
	}
	pl(l1);	
	
	l1.pop_back();//删除末尾值  
	pl(l1);
	
	list <int>::iterator ii;
	ii=l1.begin();//返回首值迭代器
	printf("%d\n",*ii);
	ii=l1.end();//返回尾值迭代器 
	ii--;
	printf("%d\n",*ii);
	l1.clear();//清空值
	printf("%d\n",l1.empty());//判断是否为空
	l3.erase(l3.begin(),l3.end());//删除元素 
	pl(l3);
	
	for (i=0;i<N;i++)
	{
		l1.push_back(i);
	}
	printf("%d  %d\n",l1.front(),l1.back());//返回首元素、尾元素
	
	l1.insert(l1.begin(),N,N);
	pl(l1); 

	l1.remove(N);//删除相同元素 
	pl(l1);
	
	l1.reverse();
	pl(l1);
	
	printf("%d\n",l1.size());//元素个数
	l1.sort();//排序 
	pl(l1); 
	
	l1.push_back(4);
	pl(l1);
	
	l1.unique();//删除相邻重复元素 
	pl(l1);
	
	
	return 0;
}

 

posted @ 2018-05-05 16:04  hemeiwolong  阅读(388)  评论(0编辑  收藏  举报