list(链表):http://baike.baidu.com/link?url=gkVdBlHEzy6ssrgT5Iy2wze4jl37ka1G45TRpUHrQSYFZQg2HimtUCePV0tU_mrWcOovzzzxaO2Cts23AY6LUK

需要包括头文件<list>

定义:

list<数据类型> 变量名;

Eg:

list <int> l;//定义了一个整型的链表;

基本操作(红色标识为常用操作):

  l.back() 返回最后一个元素的引用

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

  l.clear()删除所有元素

  l.empty() 如果list为空则返回true

  l.end() 返回末尾元素的下一个迭代器

  l.erase(it)删除由迭代器it所指向的元素

  l.erase(it,start,end)删除由迭代器it所指向的序列(start,end]

  l.insert(it,val)在迭代器it指向的元素前插入新元素val

  l.insert(it,num,val)在迭代器it指向的元素前插入num个值为val的元素

  l.insert(it, first, last)将由迭代器first 和last 所指定的序列[first, last)插入到迭代器it 指向的元素前面。

  l.merge() 合并两个list

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

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

  l.push_back() 尾部添加一个元素

  l.push_front() 头部添加一个元素

代码解释:

#include<list>
#include<iostream>

using namespace std;

int main()
  {
   list <int> a;
   a.push_back(1);
   a.push_back(2);
   a.push_back(3);
  /* 
   for (int i=0;i<a.size();i++)
     cout<<a[i]<<endl;
  */                                //因为链表的储存空间不是连续的,所以无法用下标法进行遍历。
   list <int> ::iterator ator=a.begin();//上次讲过,这里就不细说了了。
   for (;ator!=a.end();ator++)
      cout<<*ator<<endl; 
      cout<<endl;
      ator--;
    a.insert(ator,5);//蓝色部分为解释擦如元素。
    ator=a.begin();
 for (;ator!=a.end();ator++)
      cout<<*ator<<endl;
    cout<<endl;        
     a.push_front(3);//头插入元素
   ator=a.begin();
 for (;ator!=a.end();ator++)
      cout<<*ator<<endl; 
   return 0;
  }

//vector与list最大差别在于链表能够支持在任意位置插入元素,而vector不能。即list储存空间不连续,而vector储存空间连续。

C++之路起航——标准模板库(list)的更多相关文章

  1. C++之路起航——标准模板库(vector)

    vector(动态数组或向量):动态分配内存空间的线性储存结构. 需要包括头文件<vector> 定义: vector<数据类型> 变量名: Eg: vector<int ...

  2. C++之路起航——标准模板库(queue)

    queue: FIFO队列:先进先出队列. 优先队列:对队列中的元素按优先级的大小输出. 定义: FIFO队列: queue<数据类性>变量名. 优先队列:priority_queue&l ...

  3. C++之路起航——标准模板库(deque)

    deque(双端队列):http://baike.baidu.com/link?url=JTvA2cuLubptctHZwFxswvlZvxNdFOxmifsYCGLj5IZF-Tj4rbWLv8Jn ...

  4. C++之路起航——标准模板库(set)

    set(集合):http://baike.baidu.com/link?url=cb68AB-3qfEK8RoaGHJFClb4ZiWpJfc32lPOLtaNUrdxntFC738zCZsCiUlf ...

  5. [转载]C++之路起航——标准模板库(deque)

    转自:https://www.cnblogs.com/grhyxzc/p/5074061.html deque(双端队列):http://baike.baidu.com/link?url=JTvA2c ...

  6. 标准模板库(STL)学习指南之sort排序

    对于程序员来说,数据结构是必修的一门课.从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来.幸运的是这些理论都已经比较成熟,算法也基本固定下来,不需要你再去花费心思 ...

  7. STL标准模板库(简介)

    标准模板库(STL,Standard Template Library)是C++标准库的重要组成部分,包含了诸多在计算机科学领域里所常见的基本数据结构和基本算法,为广大C++程序员提供了一个可扩展的应 ...

  8. 【转】C++标准库和标准模板库

    C++强大的功能来源于其丰富的类库及库函数资源.C++标准库的内容总共在50个标准头文件中定义.在C++开发中,要尽可能地利用标准库完成.这样做的直接好处包括:(1)成本:已经作为标准提供,何苦再花费 ...

  9. STL标准模板库介绍

    1. STL介绍 标准模板库STL是当今每个从事C++编程的人需要掌握的技术,所有很有必要总结下 本文将介绍STL并探讨它的三个主要概念:容器.迭代器.算法. STL的最大特点就是: 数据结构和算法的 ...

随机推荐

  1. spring容器IOC创建对象<二>

    问题?spring是如何创建对象的?什么时候创建对象?有几种创建方式?测试对象是单例的还是多例的 ?对象的初始化和销毁? 下面的四大模块IOC的内容了!需要深刻理解 SpringIOC定义:把对象的创 ...

  2. 弹窗文件js+css

    // 每个弹窗的标识 var x =0; var idzt = new Array(); var Window = function(config){ //ID不重复 idzt[x] = " ...

  3. ViewModel在MVC3中的应用:实现多字段表格的部分更新

    假设我们有这样一张用户表: public class F_users { [Key] [Display(Name="用户名:")] [Required(ErrorMessage=& ...

  4. 使用Areas分离ASP.NET MVC项目

    为什么需要分离? 我们知道MVC项目各部分职责比较清晰,相比较ASP.NET Webform而言,MVC项目的业务逻辑和页面展现较好地分离开来,这样的做法有许多优点,比如可测试,易扩展等等.但是在实际 ...

  5. Asp.net MVC23 使用Areas功能的常见错误

    一般WEB项目都会不同的页面区域,如:用户前台.用户后台.管理员后台. 访问的URL: 用户前台:www.domain.com/home/index 用户后台:www.domain.com/admin ...

  6. 【转】Android中Application类用法

    转自:http://www.cnblogs.com/renqingping/archive/2012/10/24/Application.html Application类 Application和A ...

  7. java发展道路

    1.

  8. synchronized锁自旋2

    http://www.infoq.com/cn/articles/java-se-16-synchronized 1 引言 在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它 ...

  9. logback的配置和使用

    1. logback介绍 logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core,logback-classic和logback-acce ...

  10. LeetCode Maximal Square

    原题链接在这里:https://leetcode.com/problems/maximal-square/ 这是一道DP题,存储历史信息是到当前点能有的最大square, 用二维数组dp存储. 更新方 ...