栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

STL专题

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

STL专题

1.end()函数成员标识超结尾位置,不可进行赋值操作,会导致后续再操作内存泄漏。

2.erase()方法删除指定区间元素。

3.insert()方法插入指定区间值当前位置前

4.STL函数:

<1>for_each(*first ,*end ,const*tr)//将常函数指针或lambda表达式指向特定区间,代替了原始for循环。

<2>random_shuffle(*first, *end)对迭代器指针区间进行随机排列

5.每种容器都定义了一个类级typedef名称--iterator,但实际迭代器类型都不相同。


容器模板类:

1.deque

deque表示双端队列,在STL中实现类似于vector,但deque在序列两端插入删除元素的时间是固定的,而vector是线性的,所以多发于对两端位置操作便用deque。而vector在执行对元素的随机访问和在中部操作较快。

提供d.front(), d.back()等操作。


2.list

list表示双向链表,除收尾元素外,每个元素都与前后位置元素相连接。与vector、deque不同的是,list在任意位置进行插入删除的时间都是固定的,但不支持数组表示法和随机访问,因此李斯特强调的是元素的快速插入和删除。

与矢量迭代器不同,在元素中插入删除元素后,迭代器指向位置不变(vector在插入删除元素后,迭代器指向位置不变,但位置处元素已经发生了变化)

list成员函数:

assign() 给list赋值
back() 返回最后一个元素
clear() 删除所有元素
empty() 如果list是空的则返回true
end() 返回末尾的迭代器
erase() 删除一个元素
front() 返回第一个元素
insert() 插入一个元素到list中
max_size() 返回list能容纳的最大元素数量
merge(list x) 合并两个list,两个list必须已经排序,合并后x为空
pop_back() 删除最后一个元素
pop_front() 删除第一个元素
push_back() 在list的末尾添加一个元素
push_front() 在list的头部添加一个元素
remove(const T& val) 从list删除元素
remove_if() 按指定条件删除元素
resize() 改变list的大小
reverse() 把list的元素倒转
size() 返回list中的元素个数
sort() 给list排序
splice(iterator pos,list x) 将链表x插入pos前,x将为空。
swap() 交换两个list
unique() 删除list中重复的元素
 


关联容器

1.multimap

基本的multimap声明使用模板参数指定键的类型和储存的值类型,例如:

multimap codes;

为将信息结合在一起,实际值类型将键类型和数据类型结成一对,STL使用模板类pair将这两种值储存到一个对象中。键值常用const修饰。

插入方式可先创建pair对象啊,再将其插入multimap,或创建匿名pair对象并将其插入:

codes.insert(pair item(213,"Los Angeles"));

对于pair对象,可使用first和second成员来访问两个部分。

对于multimap对象:

成员函数count()接受键作为参数,返回该键的元素数目。

emplace(),在当前multimap容器中的指定位置处构造新键值对。其效果和插入键值对一样,但效率更高。

erase(),删除multimap容器指定位置、指定键(key)值或者指定区域内的键值对。

equal_range(key),返回一个pair对象(包含2个双向迭代器),其中pair.first和lower_bound()方法的返回值等价,pair.second和upper_bound()方法的返回值等价。也就是说,该方法将返回一个范围,该范围中包含的键为key的键值对(map容器键值对唯一,因此该返回最多包含一个键值对)。

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

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

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