C++容器的分类-创新互联

一.sequence containers

创新互联是一家专注于做网站、成都网站制作与策划设计,大同网站建设哪家好?创新互联做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:大同等地区。大同做网站价格咨询:18982081108

1.array:数组封装类

2.vector: 单向生长

3.deque: 双向生长

4.list: 双向链表,通过指针链接相邻的两个元素

5.forward-list:单向链表,比list更省内存

二.associative containers

set/multiset: value是key,mutil表示value的值可以重复

map/multimap: value和key值分开,通过key值得到value的值

unordered_set/unordered_map/unordered_multiset/unordered_multimap: 采用separate chaining原理,背后是hashtable,hashtable下面挂了很多像篮子一样的指针,这些指针存放在vector的容器内,篮子内的元素可以是单向列表也可以是双向列表,元素的总数不超过篮子的总数,当等于篮子数量的时候,篮子的数量会成长为之前数量的两倍,这个过程叫做rehashing,篮子内的元素会通过hash function计算出来的hash code重新选择放入哪个篮子中。

三.容器的定义

template>

class vector : protected _Vector_base<_Tp, _alloc>

template>

class list : protected _List_base<_Tp, _alloc>

template, typename _alloc= std::allocator<_Key>>

class set

template, typename _alloc = std::allocator>>

class map

template, class _Pred=std::equal_to<_Value>, calss _alloc = std::allocator<_Value>>

class unordered_set

template, class _Pred =std::equal_to<_Key>, class _alloc = std::allocator>>

class unordered_map

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


新闻名称:C++容器的分类-创新互联
网页地址:http://scyanting.com/article/jpohs.html