cpp的stl有linklist吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cpp的stl有linklist吗相关的知识,希望对你有一定的参考价值。

参考技术A 所有stl头文件不包含.h
stl体现了泛型编程的思想,就操作与数据分离。
stl中包含:容器,迭代器,算法。
常用容器有:
<序列式容器>:元素有固定位置,元素位置与插入顺序有关,与元素值无关,有:vector(向量),deque(双端队列),list (列表)
<关联式容器>:属于已序集群,元素位置与元素值与排序关系有关,与插入次序无关,有:set(集合),map(映射),mutiset(多重集合),mutimap(多重映射)
常用算法有:
find,count,min,max,min_element,max_element,search,equal,sort,(lambda)
(1)逐一介绍
vector
数据结构:数组。内存不够时从新分配新数组,再复制。属于连续空间。
特点:随机访问快,中间插入、删除慢(时间:n),末尾插入、删除快,常用做堆栈,[]快。
注意:如果想要更好的效率,可以在初始化后使用resize()函数。vector在多线程不安全:
A:程序崩溃,因为线程A vector进行写时,如果内存已满会重新申请内存,此时它的地址已经改变,而线程B依旧在写入/读入已经无效的地址,就会造成崩溃。可以初始化很大区间或者加上进程同步锁。

deque(double-ended queue)
数据结构:页链表,在前/尾段增加新空间,内存要分配一段空间,维护整体连续的假象。
特点:两端操作快,中间操作慢,按页或块分配内存,每页容纳固定数目元素,deque是list与vector的折中方案,[]快。
list(double linked list)
数据结构:双向链表,内存空间不连续。
特点:任意地方操作效率高,不提供[]重载,访问开始结束元素快,随机访问慢。
set(集合)
数据结构:红黑树(一种平衡搜索树),内部元素自动排序,每个元素只能出现一次,结构体需要重载运算符"<"(重载需要保证唯一性),大部分操作复杂度为:log(n)。
特点:自动排序好的,map与set的插入删除效率高。
map(映射)
数据结构:红黑树,每个元素需要有键值,基于键值排序,一对一映射,键值结构体也需要重载运算符"<",大部分操作为log(n)。
特点:自动建立key-value,对于迭代器,可以修改实值,不可以修改key。
mutiset,mutimap
支持重复元素/键值的set/map
(3)其他
容器共性
empty(),size().
迭代器有:
begin()
end()
rbegin()
rend()
clear()
erase(it)
在线广告监测系统
精选推荐
广告

C++ STL 参考手册Cpp_STL_ReferenceManual.pdf
21下载·0评论
2020年12月21日
Cpp.STL程序员开发指南.pdf
30下载·1评论
2013年7月21日
c++基础知识——STL之链表
5329阅读·22评论·23点赞
2022年5月5日
C++语言学习之STL 的组成
496阅读·0评论·0点赞
2015年6月3日
cpp中的STL简介
2141阅读·0评论·1点赞
2016年10月28日
Cpp STL
123阅读·0评论·1点赞
2022年8月3日
破壁机和料理机的区别

精选推荐
广告
C++ set&mulitset 与 仿函数(函数对象)
670阅读·0评论·1点赞
2020年3月9日
CPP_STL(标准模板库)
484阅读·0评论·0点赞
2021年3月18日
CPPSTL六大部件
140阅读·0评论·0点赞
2020年10月9日
cpp的STL算法
1617阅读·0评论·0点赞
2016年11月1日
CPP STL
664阅读·0评论·0点赞
2014年5月18日
CppSTL(一)
109阅读·0评论·0点赞
2022年3月13日
cpp的stl的队列和栈
2161阅读·0评论·0点赞
2016年11月1日
CPPSTL的一些函数操作
71阅读·0评论·0点赞
2021年2月28日
C++ STL 之 list
100阅读·0评论·0点赞
2019年5月25日
STL-CPP
0下载·0评论
2021年3月6日
C++ STL 链表写法
4325阅读·0评论·1点赞
2019年1月30日
C++ STL list链表的基本操作
7014阅读·0评论·0点赞
2018年9月28日
cpp的STL之list
880阅读·0评论·0点赞
2016年10月28日
C语言的那些小秘密之动态数组
6.6W阅读·56评论·45点赞
2011年7月21日
去首页
看看更多热门内容

GeekBand_CPP_STL_Architecture&Container

STL六大部件:技术分享
Containers(容器)
Allocators(分配器)
Algorithms(算法)
Iterators(迭代器)
Adapters(适配器)
Functors仿函数)
 
STL的主体在于容器,其他五个部件共同实现了容器的各种功能

以上是关于cpp的stl有linklist吗的主要内容,如果未能解决你的问题,请参考以下文章

Java集合篇二:LinkList

LinkList *L和 LinkList *&L和LinkList &*L

C语言如何组合如下几个文件?linklist.h,linklist.c,linlistMain.c,为啥程序老报错?

链表中LinkList L与LinkList *L 借鉴

java集合类学习笔记之LinkList

链表程序详解Linklist.c