查看: 2654|回复: 1

[转载电子书] C++ STL相关使用特点大全,太有用了

[复制链接]

4

主题

3

回帖

38

积分

管理员

积分
38
发表于 2018-3-15 19:07:14 | 显示全部楼层 |阅读模式

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

×

% L8 P, h' \2 w( t, z: J% n8 V: F4 ^4 u* |* P0 X3 z7 Y
. t3 A: Z1 r; x! C
/ H# }$ x; y1 |  _" f( y
0 R6 a( n2 J& i- S
C++ STL 的实现:4 \; ~( R, D. z0 o
7 v3 \7 j6 |( m1 }+ ]
8 Z5 B9 N7 }% V3 D( [9 @
1.vector  底层数据结构为数组 ,支持快速随机访问
8 k/ w0 q- _! Q% N: j+ E5 A; e7 O" v# w. J

2 S: L& g& k$ W3 @8 T2.list    底层数据结构为双向链表,支持快速增删
! Z8 V: U0 L6 J- s( T
1 f+ F( Q& V0 o! t; j, V

2 `3 ~: u1 F1 a8 ~6 N* g3.deque   底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问  o* t+ y. S6 s* K
; P' g* N1 S5 I* N' o% {
9 \) z, N! c: t8 C) [
4.stack   底层一般用23实现,封闭头部即可,不用vector的原因应该是容量大小有限制,扩容耗时* d: f# T* R" _# L$ u8 [# K

7 J+ N  R# `6 X: X( |
5 n& D9 _* f% r. B6 g6 F. ~0 a  @7 _
5.queue   底层一般用23实现,封闭头部即可,不用vector的原因应该是容量大小有限制,扩容耗时+ g$ V7 Z7 o  D4 s; r- l% `

6 ~3 o* C- s4 |
( ]  Z! ?+ o, B( _  j* y
6.45是适配器,而不叫容器,因为是对容器的再封装( O) d4 g. r& U  ?
( g* r: b( N- v8 D: y

( K' I$ I- _$ ^. ~4 B' k7.priority_queue 的底层数据结构一般为vector为底层容器,堆heap为处理规则来管理底层容器实现
1 G( j( E+ }( L1 B) s8 F% p8 H5 `( {4 J
5 C$ U3 }1 b! |- R
8.set       底层数据结构为红黑树,有序,不重复
( r5 |; b6 W0 R$ {- M& S2 n
( C9 O- g( C  k
% I: E# A1 N; H' r. P1 h( x' H
9.multiset  底层数据结构为红黑树,有序,可重复 ' p* N& c8 J* i( \# X3 m7 K" T' G
5 ]! C( p' I% T( y) I1 ^( j

  f( H) e3 e2 H6 `- E$ t10.map      底层数据结构为红黑树,有序,不重复
; ]+ M, s/ [6 T/ }5 }, I5 V. D! R5 r# ^! z! P, n/ l

8 D6 }* U8 V. l/ p; m11.multimap 底层数据结构为红黑树,有序,可重复
: H( y9 v& ^4 Y
- |- w+ E% I, F. q
, F6 u5 T5 q/ p# q6 o# K
12.hash_set 底层数据结构为hash表,无序,不重复: f8 r5 ~( z% O7 C6 p/ R

  ]: m6 L4 U- r$ |: q  R: U- y
9 r/ f1 v0 N' L* R: E. V, Q" L7 j4 _/ H
13.hash_multiset 底层数据结构为hash表,无序,可重复 6 `. z' W2 R- W
5 y: i1 Y4 M- x; P, X: a

9 T: u7 O7 t* B/ _+ u8 J14.hash_map      底层数据结构为hash表,无序,不重复9 z6 P, b- k$ j+ C: J

: c' b' ~* s% a9 n& i0 L" m
$ x/ E: _) \. }; e
15.hash_multimap 底层数据结构为hash表,无序,可重复 6 X6 b) p$ a. A$ C1 u
; Y  d' {" c" s$ _
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部