栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

STL

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

STL

目录

STL容器

1 容器种类

2 常见的函数成员

3 序列式容器

1 array容器  

2 vector容器

关于remove函数的详细介绍在:

3 deque容器

4 list容器

5 forward_list容器



STL容器

封装了数据结构的模板类的集合。

1 容器种类

Q1:成员函数和模板函数的区别?

表1 迭代器种类

容器种类功能容器
序列容器以线性排列(类似普通数组的存储方式)来存储某一指定类型(例如 int、double 等)的数据,元素的位置与元素的值无关。

array(数组容器)

vector(向量容器)

deque(双端队列容器)

list(链表容器)

forward_list(正向链表容器)

stack

queue 

排序容器元素的位置是由元素排序决定的。
哈希容器关联式容器,其中元素的位置是又哈希函数决定的。(C++11中新加入4种)

2 常见的函数成员

 表2 array、vector、deque容器的函数成员

函数成员函数功能arrayvectordeque
begin()返回指向容器中第一个元素的迭代器。
end()返回指向容器最后一个元素所在位置后一个位置的迭代器,通常和 begin() 结合使用。
rbegin()返回指向最后一个元素的迭代器。
rend()返回指向第一个元素所在位置前一个位置的迭代器。
cbegin()和 begin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。
cend()和 end() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。
crbegin()和 rbegin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。
crend()和 rend() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。
assign()用新元素替换原有内容。-
operator=()复制同类型容器的元素,或者用初始化列表替换现有内容。
size()返回实际元素个数。
max_size()返回元素个数的最大值。这通常是一个很大的值,一般是 232-1,所以我们很少会用到这个函数。
capacity()返回当前容量。--
empty()判断容器中是否有元素,若无元素,则返回 true;反之,返回 false。
resize()改变实际元素的个数。-
shrink _to_fit()将内存减少到等于当前元素实际所使用的大小。-
front()返回第一个元素的引用。
back()返回最后一个元素的引用。
operator[]()使用索引访问元素。
at()使用经过边界检査的索引访问元素。
push_back()在序列的尾部添加一个元素。-
insert()在指定的位置插入一个或多个元素。-
emplace()在指定的位置直接生成一个元素。-
emplace_back()在序列尾部生成一个元素。-
pop_back()移出序列尾部的元素。-
erase()移出一个元素或一段元素。-
clear()移出所有的元素,容器大小变为 0。-
swap()交换两个容器的所有元素。
data()返回指向容器中第一个元素的指针。-

表3 list和forward_list成员

函数成员函数功能listforward_list
begin()返回指向容器中第一个元素的迭代器。
end()返回指向容器最后一个元素所在位置后一个位置的迭代器。
rbegin()返回指向最后一个元素的迭代器。-
rend()返回指向第一个元素所在位置前一个位置的迭代器。-
cbegin()和 begin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。
before_begin()返回指向第一个元素前一个位置的迭代器。-
cbefore_begin()和 before_begin() 功能相同,只不过在其基础上,增加了 const 属性,即不能用该指针修改元素的值。-
cend()和 end() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。
crbegin()和 rbegin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。-
crend()和 rend() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。-
assign()用新元素替换原有内容。
operator=()复制同类型容器的元素,或者用初始化列表替换现有内容。
size()返回实际元素个数。-
max_size()返回元素个数的最大值,这通常是一个很大的值,一般是 232-1,所以我们很少会用到这个函数。
resize()改变实际元素的个数。
empty()判断容器中是否有元素,若无元素,则返回 true;反之,返回 false。
front()返回容器中第一个元素的引用。
back()返回容器中最后一个元素的引用。-
push_back()在序列的尾部添加一个元素。-
push_front()在序列的起始位置添加一个元素。
emplace()在指定位置直接生成一个元素。-
emplace_after()在指定位置的后面直接生成一个元素。-
emplace_back()在序列尾部生成一个元素。-
cmplacc_front()在序列的起始位生成一个元索。
insert()在指定的位置插入一个或多个元素。-
insert_after()在指定位置的后面插入一个或多个元素。-
pop_back()移除序列尾部的元素。-
pop_front()移除序列头部的元素。
reverse()反转容器中某一段的元素。
erase()移除指定位置的一个元素或一段元素。-
erase_after()移除指定位置后面的一个元素或一段元素。-
remove()移除所有和参数匹配的元素。
remove_if()移除满足一元函数条件的所有元素。
unique()移除所有连续重复的元素。
clear()移除所有的元素,容器大小变为 0。
swap()交换两个容器的所有元素。
sort()对元素进行排序。
merge()合并两个有序容器。
splice()移动指定位置前面的所有元素到另一个同类型的 list 中。-
splice_after()移动指定位置后面的所有元素到另一个同类型的 list 中。-

———————————————————————————————————————————

3 序列式容器

1 array容器  

STL_array容器_北城路人的博客-CSDN博客

2 vector容器

STL_vector容器_北城路人的博客-CSDN博客

关于remove函数的详细介绍在:

 remove函数使用方法_北城路人的博客-CSDN博客

3 deque容器

 STL_deque容器_北城路人的博客-CSDN博客

4 list容器

STL_list容器_北城路人的博客-CSDN博客

5 forward_list容器

STL_forward_list容器_北城路人的博客-CSDN博客

4 关联式容器

关于pair函数用法:

C++ STL pair用法详解

1 map容器

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/341334.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号