STL容器整理(office2010版).doc

上传人:公**** 文档编号:548222427 上传时间:2023-08-06 格式:DOC 页数:9 大小:34.02KB
返回 下载 相关 举报
STL容器整理(office2010版).doc_第1页
第1页 / 共9页
STL容器整理(office2010版).doc_第2页
第2页 / 共9页
STL容器整理(office2010版).doc_第3页
第3页 / 共9页
STL容器整理(office2010版).doc_第4页
第4页 / 共9页
STL容器整理(office2010版).doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《STL容器整理(office2010版).doc》由会员分享,可在线阅读,更多相关《STL容器整理(office2010版).doc(9页珍藏版)》请在金锄头文库上搜索。

1、第一类容器(支持迭代器)序列容器Vector(随机迭代访问)说明:vector是一种动态数组,是基本数组的类模板。其内部定义了很多基本操作。include 注意:头文件没有“.h”构造:vector v1; / 默认构造函数vector v2(init_size,0); /如果预先定义了:int init_size;他的成员值都被初始化为0;vector v3(v2); / 复制构造函数,构造一个新的向量,作为已存在的向量的完全复制;vector v4(first, last) / 带两个常量参数的构造函数,产生初始值为一个区间的向量。区间由一个半开区间 first, last) 来指定。方法

2、:assign(beg,end) 将(beg; end)区间中的数据赋值给对象。assign(n,elem)将n个elem的拷贝赋值给对象。at(idx)传回索引idx所指的数据,如果idx越界,抛出out_of_range。back()传回最后一个数据,不检查这个数据是否存在。begin()传回迭代器中的第一个数据地址。capacity()返回容器中数据个数。clear()移除容器中所有数据。empty()判断容器是否为空。end() / 指向迭代器中末端元素的下一个,指向一个不存在元素。erase(pos) / 删除pos位置的数据,传回下一个数据的位置。erase(beg,end)删除b

3、eg,end)区间的数据,传回下一个数据的位置。front()传回第一个数据。get_allocator使用构造函数返回一个拷贝。insert(pos,elem) / 在pos位置插入一个elem拷贝,传回新数据位置insert(pos,n,elem) / 在pos位置插入n个elem数据,无返回值insert(pos,beg,end) / 在pos位置插入在beg,end)区间的数据。无返回值max_size()返回容器中最大数据的数量。pop_back()删除最后一个数据。push_back(elem)在尾部加入一个数据。rbegin()传回一个逆向队列的第一个数据。rend()传回一个逆

4、向队列的最后一个数据的下一个位置。resize(num)重新指定队列的长度。reserve()保留适当的容量。size()返回容器中实际数据的个数。c1.swap(c2) / 将c1和c2元素互换Deque(随机迭代访问)说明#include deque容器类与vector类似,支持随机访问和快速插入删除,它在容器中某一位置上的操作所花费的是线性时间。与vector不同的是,deque还支持从开始端插入数据:push_front()。构造:deque c 创建一个空的dequedeque c1(c2) 复制一个deque。deque c(n) 创建一个deque,含有n个数据,数据均已缺省构造

5、产生。deque c(n, elem) 创建一个含有n个elem拷贝的dequedeque c(beg,end) 创建一个以beg;end)区间的dequedeque() 销毁所有数据,释放内存方法:assign(beg, end) 将beg; end)区间中的数据赋值给对象。assign(n, elem) 将n个elem的拷贝赋值给对象。at(index) 传回索引index所指的数据,如果index越界,抛出out_of_range。back() 传回最后一个数据,不检查这个数据是否存在。begin() 传回迭代器重的可一个数据。clear() 移除容器中所有数据。empty() 判断容器

6、是否为空。end() 指向迭代器中的最后一个数据地址。erase(pos) 删除pos位置的数据,传回下一个数据的位置。erase(beg,end) 删除beg,end)区间的数据,传回下一个数据的位置。front() 传回第一个数据。get_allocator 使用构造函数返回一个拷贝。insert(pos,elem) 在pos位置插入一个elem拷贝,传回新数据位置insert(pos,n,elem) 在pos位置插入n个elem数据。无返回值insert(pos,beg,end) 在pos位置插入在beg,end)区间的数据。无返回值max_size() 返回容器中最大数据的数量。pop

7、_back() 删除最后一个数据。pop_front() 删除头部数据。push_back(elem) 在尾部加入一个数据。push_front(elem) 在头部插入一个数据。rbegin() 传回一个逆向队列的第一个数据。rend() 传回一个逆向队列的最后一个数据的下一个位置。resize(num) 重新指定队列的长度。size() 返回容器中实际数据的个数。swap(c2)swap(c1,c2) 将c1和c2元素互换。List(双向迭代访问)说明:就是一双向链表,可高效地进行插入删除元素。包括构造、方法等。构造:list c0; /空链表list c1(3); /建一个含三个默认值是0

8、的元素的链表list c2(5,2); /建一个含五个元素的链表,值都是2list c4(c2); /建一个c2的copy链表list c5(c1.begin(),c1.end(); /c5含c1一个区域的元素First, Last)。方法:assign() /分配值,有两个重载:c1.assign(+c2.begin(),c2.end() /c1现在为(50,60)。c1.assign(7,4) /c1中现在为7个4,c1(4,4,4,4,4,4,4)。back() /返回最后一元素的引用:begin() /返回第一个元素的指针(iterator)clear() /删除所有元素empty()

9、 /判断是否链表为空end() /返回最后一个元素的下一位置的指针(list为空时end()=begin()erase() /删除一个元素或一个区域的元素(两个重载)front() /返回第一个元素的引用:insert() /在指定位置插入一个或多个元素(三个重载):max_size() /返回链表最大可能长度(size_type就是int型):merge() /合并两个链表并使之默认升序(也可改):pop_back() /删除链表尾的一个元素pop_front() /删除链表头的一元素push_back() /增加一元素到链表尾push_front() /增加一元素到链表头rbegin()

10、/返回链表最后一元素的后向指针(reverse_iterator or const)rend() /返回链表第一元素的下一位置的后向指针remove /()删除链表中匹配值的元素(匹配元素全部删除)remove_if() /删除条件满足的元素(会遍历一遍链表)resize() /重新定义链表长度(两重载):reverse() /反转链表:size() /返回链表中元素个数sort() /对链表排序,默认升序(可自定义)splice() /对两个链表进行结合(三个重载)swap() /交换两个链表(两个重载)unique() /删除相邻重复元素(断言已经排序,因为它不会删除不相邻的相同元素)关联

11、容器Set和multiset(双向迭代访问)集和多集(set 和multiset 容器类)#include 一个集合(set)是一个容器,它其中所包含的元素的值是唯一的。 set和multiset的区别是:set支持唯一键值,set中的值都是特定的,而且只出现一次;而multiset中可以出现副本键,同一值可以出现多次。说明:由节点组成的红黑树,每个节点都包含着一个元素,节点之间以某种作用于元素对的谓词排列,没有两个不同的元素能够拥有相同的次序.构造explicit set(const Compare&=compare(); 如:setint,less set1; less是一个标准类,用于形

12、成升序排列函数对象。降序排列是用greater。 Template set(InputIterator, InputIterator, const Compare&=compare(); 如:setint ,less set2(vector1.begin(),vector1.end(); 通过指定某一预先定义的区间来初始化set对象的构造函数。 set(const set); 如:setint ,less set3(set2); 方法:begin() 返回指向第一个元素的迭代器 clear() 清除所有元素 count() 返回某个值元素的个数 empty() 如果集合为空,返回true en

13、d() 返回指向最后一个元素之后的迭代器,不是最后一个元素 equal_range() 返回集合中与给定值相等的上下限的两个迭代器 erase() 删除集合中的元素 find() 返回一个指向被查找到元素的迭代器 get_allocator() 返回集合的分配器 insert() 在集合中插入元素 lower_bound() 返回指向大于(或等于)某值的第一个元素的迭代器 key_comp() 返回一个用于元素间值比较的函数 max_size() 返回集合能容纳的元素的最大限值 rbegin() 返回指向集合中最后一个元素的反向迭代器 rend() 返回指向集合中第一个元素的反向迭代器 siz

14、e() 集合中元素的数目 swap() 交换两个集合变量 upper_bound() 返回大于某个值元素的迭代器 value_comp() 返回一个用于比较元素间的值的函数Map和multimap(双向迭代访问)映射和多重映射基于某一类型Key的键集的存在,提供对T类型的数据进行快速和高效的检索。对map而言,键只是指存储在容器中的某一成员。Map不支持副本键,multimap支持副本键。Map和multimap对象包涵了键和各个键有关的值,键和值的数据类型是不相同的,这与set不同。set中的key和value是Key类型的,而map中的key和value是一个pair结构中的两个分量。1.map介绍使用map得包含map类所在的头文件:#include 1.1 map的构造Template map(); / 默认构造函数 map(const map& m) / 拷贝构造函数 map(iterator begin, iterator end ); /区间构造函数 map(iterator begin, iterator end, const traits& _compare) /带比较谓词的构造函数 map

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号