zoukankan      html  css  js  c++  java
  • 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("
    ");
     } 
     
    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
    ",*ii);
    	ii=l1.end();//返回尾值迭代器 
    	ii--;
    	printf("%d
    ",*ii);
    	l1.clear();//清空值
    	printf("%d
    ",l1.empty());//判断是否为空
    	l3.erase(l3.begin(),l3.end());//删除元素 
    	pl(l3);
    	
    	for (i=0;i<N;i++)
    	{
    		l1.push_back(i);
    	}
    	printf("%d  %d
    ",l1.front(),l1.back());//返回首元素、尾元素
    	
    	l1.insert(l1.begin(),N,N);
    	pl(l1); 
    
    	l1.remove(N);//删除相同元素 
    	pl(l1);
    	
    	l1.reverse();
    	pl(l1);
    	
    	printf("%d
    ",l1.size());//元素个数
    	l1.sort();//排序 
    	pl(l1); 
    	
    	l1.push_back(4);
    	pl(l1);
    	
    	l1.unique();//删除相邻重复元素 
    	pl(l1);
    	
    	
    	return 0;
    }
    
  • 相关阅读:
    HDU4366 Successor 线段树+预处理
    POJ2823 Sliding Window 单调队列
    HDU寻找最大值 递推求连续区间
    UVA846 Steps 二分查找
    HDU3415 Max Sum of MaxKsubsequence 单调队列
    HDU时间挑战 树状数组
    UVA10168 Summation of Four Primes 哥德巴赫猜想
    UESTC我要长高 DP优化
    HDUChess 递推
    HDU4362 Dragon Ball DP+优化
  • 原文地址:https://www.cnblogs.com/hemeiwolong/p/8995016.html
Copyright © 2011-2022 走看看