list和vector的用法基本相同,区别如下:

  • list可以头尾插入和删除,效率一样,vector只有尾部插入和删除效率才高,头部操作效率很低

  • list的排序有专有的接口,不能使用全局的接口,原因是list中的节点不能随机访问,vector中的节点可以随机访问

  • vector是连续存储,list不是连续存储

基本用法

#include <iostream>
#include <list> using namespace std; /*
clear() 清空链表
empty() 判断list是否为空
size() 获取list中的元素个数
pop_back() 删除最后一个元素(效率高)
pop_front() 删除第一个元素(效率高)
push_back() 在list的末尾添加一个元素(效率高)
push_front() 在list的头部添加一个元素(效率高)
erase() 删除指定元素
sort() 排序
reverse() 反转
*/ int main()
{
list<int> l; l.push_back();
l.push_back();
l.push_front();
l.push_front(); cout << "size : " << l.size() << endl; l.sort(); // 特有排序接口 reverse(l.begin(), l.end()); // 4 3 2 1
for(list<int>::iterator it = l.begin(); it != l.end(); ++it)
{
cout << *it << ends;
}
cout << endl; l.clear(); cout << "size : " << l.size() << endl; return ;
}

循环删除(类似vector)

#include <iostream>
#include <list> using namespace std; int main()
{
list<int> l; l.push_back();
l.push_back();
l.push_front();
l.push_front(); // 循环删除
for(list<int>::iterator it = l.begin(); it != l.end();)
{
if(*it == )
{
it = l.erase(it);
}
else
{
++it;
}
} // 2 3 1
for(list<int>::iterator it = l.begin(); it != l.end(); ++it)
{
cout << *it <<ends;
}
cout << endl; return ;
}

随机推荐

  1. 多页面共用sessionStorage的实现(转载)

    sessionStorage的局限: sessionStorage是页面级别的,仅在一个标签页生效,如果同一个浏览器同时打开多个标签页,且都访问同一个域名,sessionStorage是不会在这多个标 ...

  2. django xadmin 配置过程

    1.拷贝xadmin的一个下的一个xadmin文件夹放到项目里

  3. 容器中的Java堆大小调整:快速,轻松

    在上一篇博客中,我们已经看到Java进行了改进,可以根据正在运行的环境(即物理机或容器(码头工人))识别内存.java的最初问题是,它无法弄清楚它是否在容器中运行,并且它曾经为容器运行所在的整个硬件捕 ...

  4. 图解 Git 基本命令 merge 和 rebase

    Git 基本命令 merge 和 rebase,你真的了解吗? 前言 Git 中的分支合并是一个常见的使用场景. 仓库的 bugfix 分支修复完 bug 之后,要回合到主干分支,这时候两个分支需要合 ...

  5. JavaWeb网上图书商城完整项目--day02-16.登录功能各层实现

    /*1.第一步将用户提交的参数封装成javabean对象 * *2.对提交的参数的进行合法性的校验 * *3.通过用户名和密码去查找得到user对象 *如果user对象为null,说明用户名和密码不正 ...

  6. Spring-AOP:一、注解demo及基本概念

    切面:Aspect 切面=切入点+通知.在老的spring版本中通常用xml配置,现在通常是一个类带上@Aspect注解.切面负责将 横切逻辑(通知) 编织 到指定的连接点中. 目标对象:Target ...

  7. leetcode1028 从先序遍历还原二叉树 python 100%内存 一次遍历

    1028. 从先序遍历还原二叉树 python 100%内存 一次遍历     题目 我们从二叉树的根节点 root 开始进行深度优先搜索. 在遍历中的每个节点处,我们输出 D 条短划线(其中 D 是 ...

  8. 入门大数据---基于Zookeeper搭建Kafka高可用集群

    一.Zookeeper集群搭建 为保证集群高可用,Zookeeper 集群的节点数最好是奇数,最少有三个节点,所以这里搭建一个三个节点的集群. 1.1 下载 & 解压 下载对应版本 Zooke ...

  9. Oracle收集对表收集统计信息导致全表扫描直接路径读?

    direct path read深入解析 前言 最近碰到一件很奇葩的事情,因为某条SQL执行缓慢,原因是走了笛卡尔(两组大数据结果集),而且笛卡尔还是NL的一个部分,要循环31M次. 很容易发现是统计 ...

  10. 基础-Junit单元测试_反射_注解

    一.Junit单元测试 1.1 测试分类: 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值. 白盒测试:需要写代码的.关注程序具体的执行流程. 1.2 Junit使用(白盒测试) 使用步 ...