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;
    }
    
  • 相关阅读:
    详述@Responsebody和HTTP异步请求的关系
    利用synchronized解析死锁的一种形成方式
    初识Spring JdbcTemplate
    初识SpringIOC
    JasperReport框架使用教程(附带常见空白页问题说明)
    LeetCode~1033.移动石子直到连续
    LeetCode~941.有效的山脉数组
    LeetCode~344. 反转字符串
    Job for network.service failed because the control process exited with error code问题
    LeetCode~报数(简单)
  • 原文地址:https://www.cnblogs.com/hemeiwolong/p/8995016.html
Copyright © 2011-2022 走看看