特别注意,由于list对象的结点并不要求在一段连续的内存中,所以,对于迭代器,只能通过++或者--的操作将迭代器移动到后继或者前驱结点元素处。而不能对迭代器进行+n或者-n的操作,
这点与vector等不同的地方。

  

 /*关于C++STL中的list双向链表容器的学习。*/
#include <list>
#include <iostream>
using namespace std; void print(list<int> l);
void rprint(list<int> l); int main()
{
//创建list对象
list<int> l; //插入元素的三种方式
l.push_back();//向尾部插入元素,链表自动扩张
l.push_front();//向首部插入元素,链表自动扩张 //在链表中间插入新的元素
list<int>::iterator it;
it=l.begin();
it++;//只能++或者--
l.insert(it,);
cout<<"正向遍历:\n";
print(l);
cout<<"方向遍历:\n";
rprint(l); //元素的删除
//值得特别注意的是如果想要删除该链表中所有键值为某值得元素时,使用remove()方法
l.push_back();
l.push_back();
l.push_back();
cout<<"删除前:\n";
print(l);
l.remove();
cout<<"删除后:\n";
print(l); //删除链表首元素和尾元素
cout<<"删除前:\n";
print(l);
l.pop_front();
l.pop_back();
cout<<"删除后:\n";
print(l);
//此外还可以使用erase()方法和clear()方法 //元素的查找find() l.push_back();
l.push_back();
l.push_back();
//元素的排序
cout<<"排序前:\n";
print(l);
l.sort();//默认从小到大排序
cout<<"排序后: \n";
print(l);
//自定义排序分为结构体和非结构体 //另外如果想要提出连续重复的元素则使用unique()方法
return ;
} void print(list<int> l)
{
//使用前向迭代器遍历链表
list<int>::iterator it;
for(it=l.begin(); it != l.end(); it++){
cout<<(*it)<<endl;
}
} void rprint(list<int> l)
{
list<int>::reverse_iterator rit;
for(rit = l.rbegin(); rit != l.rend(); rit++){
cout<<(*rit)<<endl;
}
}

list双向链表容器(常用的方法总结)的更多相关文章

  1. stack堆栈容器、queue队列容器和priority_queue优先队列容器(常用的方法对比与总结)

    stack堆栈是一个后进先出的线性表,插入和删除元素都在表的一端进行. stack堆栈的使用方法: 采用push()方法将元素入栈: 采用pop()方法将元素出栈: 采用top()方法访问栈顶元素: ...

  2. WebBrowser常用属性方法介绍

    WebBrowser 常用属性方法 ■■方法 ==============================  ▲GoBack    相当于IE的"后退"按钮,使你在当前历史列表中后 ...

  3. VC的常用调试方法

    前言 VS是非常强大的IDE,所以掌握VSVC的常用方法,将会使得我们找出问题解决问题事半功倍. 目录 VSVC的常用调试方法 前言 1. Watch窗口查看伪变量 2. 查看指针指向的一序列值 3. ...

  4. python常用魔术方法概览

    构造和初始化 __init__(self, args) 构造函数 __new__(cls) 传入的是类实例 __del__(self) 析构函数,调用 del cls 时会被调用 属性访问控制 __g ...

  5. WebAPi添加常用扩展方法及思维发散

    前言 在WebAPi中我们通常需要得到请求信息中的查询字符串或者请求头中数据再或者是Cookie中的数据,如果需要大量获取,此时我们应该想到封装一个扩展类来添加扩展方法,从而实现简便快捷的获取. We ...

  6. StringUtils中的常用的方法

    org.apache.commons.lang.StringUtils中常用的方法,这里主要列举String中没有,且比较有用的方法: 1. 检查字符串是否为空: static boolean isB ...

  7. JOptionPane类提示框的一些常用的方法

    JOptionPane类提示框的一些常用的方法 XMLOracleSwing 最近在做swing程序中遇到使用消息提示框的,JOptionPane类其中封装了很多的方法. 很方便的,于是就简单的整理了 ...

  8. 常用js方法

    function dateGetter(name, size, offset, trim) { offset = offset || 0; return function (date) { var v ...

  9. jQuery操作Table tr td常用的方法

    虽然现在DIV+CSS进行页的布局大行其道,但是很多地方使用table还是有很多优势,用table展示数据是比较方便的,下面汇总了jQuery操作Table tr td常用的方法,熟记这些操作技巧,下 ...

随机推荐

  1. kmp小记

    以下转载自Matrix67 ************************************************************************************** ...

  2. CAD2007_DWG转PDF

    在使用CAD时,我们可能经常要将DWG转PDF格式,操作步骤如下: 1)打开需要转换的DWG文件 2)文件---->页面设置管理器----->修改----->(到“页面设置--模型” ...

  3. vsm安装

    一. 部署环境介绍 软件需求 1) CentOS 6.5 64bit 2) Ceph 0.80.6 网络拓扑介绍 1) Controller Node 由Console节点组成,安装VSM控制平台 2 ...

  4. Android-Kotlin-枚举enum

    案例一 星期: 星期的枚举:enum class 类名 {} package cn.kotlin.kotlin_oop09 /** * 定义星期的枚举类 */ enum class MyEnumera ...

  5. Android-Java-synchronized同步代码块的使用场景

    synchronized同步代码块的使用场景 (满足以下两种条件,就要考虑使用synchronize同步代码块了) 1.被synchronized同步代码块{同步的代码},是被多次异步调用,什么叫多次 ...

  6. java 注释annotation学习---两篇不错的blog

    深入理解Java:注解(Annotation)自定义注解入门 ---- http://www.cnblogs.com/peida/archive/2013/04/24/3036689.html 深入理 ...

  7. docker实用命令集合

    1. 访问docker中的MySQL数据库: docker exec -it test_mysql_1 mysql -u root -p 2. 用docker命令导入或导出mysql数据: 导出doc ...

  8. linux安装mysql详细步骤

    最近买了个腾讯云服务器,搭建环境. 该笔记用于系统上未装过mysql的干净系统第一次安装mysql.自己指定安装目录,指定数据文件目录. linux系统版本: CentOS 7.3 64位 安装源文件 ...

  9. 修改windows远程默认端口

    修改windows远程默认端口 windows端口修改rdp 1 远程服务器运行窗口调出注册表编辑器 注册表编辑器regeidt 2 修改两个注册表 1,在注册表HKEY_LOCAL_MACHINE\ ...

  10. Hbuilder用ajax连接阿里服务器上的servlet以及注意事项

    Hbuiler连接服务器上的servlet的步骤与连接本地项目中的servlet基本一致,详细内容参考上一片博客:https://www.cnblogs.com/ljysy/p/10294640.ht ...