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. vimtutor

    ================================================================================ 欢 迎 阅 读 < V I M ...

  2. C# .Net实现URL绝对路径和相对路径之间互相转换

    网站制作开发中,URL的绝对路径和相对路径之间互相转换,是经常需要用到的.以下是在C#.Net下一种实现二者互相转化的方法: [DllImport("shlwapi.dll", C ...

  3. java JDK8 学习笔记——第13章 时间与日期

    第十三章 时间与日期 13.1 认识时间与日期 13.1.1 时间的度量 1.格林威治标准时间GMT 格林威治标准时间的正午是太阳抵达天空最高点之时.现在已经不作为标准时间使用. 2.世界时UT世界时 ...

  4. Delphi自定义窗口过程WinProc

    unit ScWndProc; interface uses Forms, Messages; const DDGM_FOOMSG = WM_USER; //自定义消息 implementation ...

  5. 流媒体学习四------- ortp队列的实现

    在ortp中实现了一个通用的队列,每一个队列包括三个实体,分别是队列.消息块和数据块,这三个实体分别对应queue_t.msgb和datab结构体. queue_t的定义如下所示: typedef s ...

  6. 雾里看花终隔一层——探析package和import

    package是什么 package好比java用来组织文件的一种虚拟文件系统.package把源代码.java文件,.class文件和其他文件有条理的进行一个组织,以供java来使用. 源代码的要求 ...

  7. 1069 Nim游戏

    1069 Nim游戏 基准时间限制:1 秒 空间限制:131072 KB 有N堆石子.A B两个人轮流拿,A先拿.每次只能从一堆中取若干个,可将一堆全取走,但不可不取,拿到最后1颗石子的人获胜.假设A ...

  8. Foundation和CoreFoundation之间的转换

    Foundation是OC的东西,CoreFoundation是C语言的东西 eg: NSString\NSArray\NSDictionary 属于Foundation CFStringRef\CF ...

  9. 一个例子深入理解ClassLoader

    文件类加载器,该加载器重载了loadClass方法,逻辑是只读取文件来加载类,不委托给父类加载器进行加载 package com.ydd.study.hello.classloader; import ...

  10. Advanced REST client的使用说明

    1.  为什么要使用REST Client 在实际企业开发过程中经常会有这样的需求: 1.我当前开发的这个系统是需要调用其他系统的接口,也就是我们需要频繁的测试接口,尝试不同的入参参数去查看返回结果, ...