`

【C++ STL】细数C++ STL 的那些事---List(双向链表)

 
阅读更多

一,概述

List将元素按顺序储存在链表中.向量(vectors)相比,它允许快速的插入和删除,但是随机访问却比较慢。

list 不仅是一个双向链表,而且是一个环状双向链表

二,使用

#include <list>

using namespace std;


注意:list是一个“前闭后开”的区间,即

list<int> lt(10,6); //建立10个元素为6的链表

cout<<*(lt.end()) ; //输出乱码

cout<<*(--lt.end());//输出最后一个元素 6



三,主要函数

assign() list赋值
back() 返回最后一个元素
begin() 返回指向第一个元素的迭代器
clear() 删除所有元素
empty() 如果list是空的则返回true
end() 返回末尾的迭代器
erase() 删除一个元素
front() 返回第一个元素
get_allocator() 返回list的配置器
insert(iteator,10) 插入一个元素10到元素迭代其 iteator之前,一般iteator=find(list.begin(),list.end(),3)
max_size() 返回list能容纳的最大元素数量
merge(list<T> &x) 将x合并到 *this
pop_back() 删除最后一个元素
pop_front() 删除第一个元素
push_back() list的末尾添加一个元素
push_front() list的头部添加一个元素
rbegin() 返回指向第一个元素的逆向迭代器
remove() list删除元素
remove_if() 按指定条件删除元素
rend() 指向list末尾的逆向迭代器
resize() 改变list的大小
reverse() list的元素倒转
size() 返回list中的元素个数
sort() list排序
splice(iterator position ,list &x) // list.splice(position,list2) //list2合并到list中position 之前
splice(iterator position ,list &x,iterator i) // 元素插入list中position 之前
splice(iterator position ,list &x,iterator first,iterator last) //first - last 之间的元素插入到 list中position之前
swap() 交换两个list
unique() 删除list中重复的元素

四,示例

五,示例
输出:


四,补充:STL标准函数find进行vector 、list链表查找




分享到:
评论

相关推荐

    C++ STL 参考手册Cpp_STL_ReferenceManual.pdf

    STL 是“Standard Template Library”的缩写,中文译为“标准模板库”。...例如,vector 的底层为顺序表(数组),list 的底层为双向链表,deque 的底层为循环队列,set 的底层为红黑树,hash_set 的底层为哈希表。

    C++双向链表统计文章单词出现频率

    使用C++双向列表统计文章单词出现频率,其中双向列表模仿STL中的List.

    STL双向链表list的sort

    对于C++的STL的双向链表,排序算法有的模板并没有实现,因此给出来,大家参考。

    C++ STL入门教程(2) list双向链表使用方法(附程序代码)

    主要为大家详细介绍了C++ STL入门教程第二篇,list双向链表使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    c模拟c++ stl list

    实现c++ list部分功能,内存自管理 函数的使用和c++ stl list类似,并不完全相同 简单测试过,并不保证完全无错,仅供参考

    C++ STL 开发技术导引(随书源码)

    第8章 list双向链表容器 第9章 slist单向链表容器 第10章 bit_vector位向量容器 第11章 set集合容器 第12章 multiset多重集合容器 第13章 map映照容器 第14章 multimap多重映照容器 第15章 hash_set哈希集合容器 第...

    STL的List链表自行实现

    C++中STL的List链表容器的自行实现,自行实现迭代器、类、封装函数等

    STL list链表用法详解

    这篇文章是关于C++语言的一个新的扩展——标准模板库的(Standard Template Library),也叫STL,详细介绍了list的用法与应用

    C++ STL 开发技术导引(第6章)

    第8章 list双向链表容器 116 8.1 list技术原理 116 8.2 list应用基础 124 8.3 本章小结 131 第9章 slist单向链表容器 132 9.1 slist技术原理 132 9.2 slist应用基础 140 9.3 本章小结 148 第10章 ...

    心希盼 c++ STL 单链表源码

    心希盼 c++ STL 单链表源码 主要仿照STL封装了单链表 包括 它的迭代器 详细请看“心希盼 List.doc”文件

    list链表c++源代码

    使用C++ 代码编写的一个链表,类似于C++ STL中的容器list。可以放入任何类型的数据,通过迭代器访问链表。涉及到的技术很多。

    C++ STL开发技术导引(第5章)

    第8章 list双向链表容器 116 8.1 list技术原理 116 8.2 list应用基础 124 8.3 本章小结 131 第9章 slist单向链表容器 132 9.1 slist技术原理 132 9.2 slist应用基础 140 9.3 本章小结 148 第10章 ...

    C++链表基于类实现多项式的加法和乘法

    C++链表基于类实现多项式的加法和乘法; C ++ list class-based polynomial addition and multiplication.

    C++ STL开发技术导引(第3章)

    第8章 list双向链表容器 116 8.1 list技术原理 116 8.2 list应用基础 124 8.3 本章小结 131 第9章 slist单向链表容器 132 9.1 slist技术原理 132 9.2 slist应用基础 140 9.3 本章小结 148 第10章 ...

    C++实现链表,模板类

    C++实现的模板链表类,没有用到STL的list,是用指针实现的。

    C++语言 STL容器list总结

    STL 中的list 就是一 双向链表,可高效地进行插入删除元素。 list不支持随机访问。所以没有 at(pos)和operator[]。 list 对象list1, list2 分别有元素list1(1,2,3),list2(4,5,6) 。list&lt; int&gt;::iterator it; 构造...

    STL标准模板库简介

    2.2 C++ LIST(双向链表) 2.3 C++ DEQUE(双向队列) 2.4 三者比较 3 关联容器 3.1 特点 3.2 C++ SETS & MULTISETS 3.3 C++ MAPS & MULTIMAPS 4 容器适配器 4.1 特点 4.2 C++ STACKS(堆栈) 4.3 C++ QUEUES...

    18.双向链表.wmv(目前数据结构最好的视频,共42集,需要哪一集的知识自己下,一集3积分)

    17循环链表 18双项链表 19链式栈 20链式队列 21STL_list类 22基数排序 23属 24二叉树 25二叉树找数 26红黑树 27红黑树_0 28红黑树_1 29红黑树_2 30红黑树_3 31红黑树_4 32红黑树_5 33红黑树_6 34堆 35堆排序 36...

    c_list.rar_STL c语言_c li_双链表

    C语言下开发的双链表算法,模拟C++中STL接口说明,可以在嵌入式C语言中直接使用。

Global site tag (gtag.js) - Google Analytics