当前位置:文档之家› C++7标准模板库(标准)

C++7标准模板库(标准)


容器
vector<type> name(start,end); 创建了元素 在指定范围内的向量,start代表起始范围, end代表结束范围。(构造一个初始值为 [start,end)区间元素的Vector)
构造一个包含5个值为42的元素的Vector vector<int> vec( 5, 42 );
list常用函数
front() 返回第一个元素 insert(i,x) 把x插入链表中由迭代器i所指明的位置 insert(i,start,end) 把迭代器start和end所辖范围内的元素插 入到链表中由迭代器所指明的位置 insert(i,n,x) 把x的n个副本插入链表中由迭代器i指明的位置 max_size() 返回list所能容纳元素的最大数量(上限) pop_back() 移除最后一个元素 Pop_front() 移除第一个元素 push_back(x) 在list最后添加一个元素x push_front(x) 在list最前面添加一个元素x rbegin() 返回list尾部的逆迭代器 rend() 返回list起始的逆迭代器 reserve( size_type size) 设置list最小的元素容纳数量 resize( size_type size, TYPE val ) 改变当前list的大小为size,且 对新创建的元素赋值val size() 返回list元素数量的大小 swap(list &from) 当前list与list from的元素
容器
标准容器库的头文件 使用STL容器或容器适配器,要包含定义该容器模板类头 文件。这些头文件的内容都在std名字空间域中,程序中 必须加以说明。
标准容器库的头文件
头文件 <deque> <list> <map> <set> <queue> <stack> <vector>
说明 两端队deque的头文件 表list的头文件 映射map和多重映射multimap的头文件 集合set和多重集合multimap的头文件 队queue和优先级队列priority_queue的 头文件 栈stack的头文件 向量vector的头文件
迭代器Iterator
算法 Algorithm
容器
容器用来存储数据
Set/multiset vector
deque
Map/multimap list
容器
容器的分类 顺序容器(Sequence containers)序列式容器 每个元素都有固定位置--取决于插入时机和地点, 和元素值无关。 vector、deque、list 关联容器(Associated containers) 元素没有固定位置,每个元素位置取决于容器自己 特定的排序规则,与键值有关,与插入顺序无关。 set、multiset、map、multimap
创建deque对象
deque<type> name; deque<type> name(size); 创建具有size元素个 数的deque对象 deque<type> name(size,value); 创建具有size 元素个数的deque对象,并将对象的初始值设为 value deque<type> name(mydeque); 采用拷贝构造函 数,用现有的双端队列mydeque创建一个deque 对象
标准模板库
标准模板库简介 容器 迭代器 算法
标准模板库简介(STL)
库(library)是一系列程序组件的集合,它们可以 在不同的程序中重复使用。库函数设计的第一位 的要求就是通用性,模板(template)为通用性带 来了不可估量的前景,我们可以在使用模板时才 对某些类型作选择。
标准模板库(Standard Template Library)是 ANSI/ISO C++最有特色、最实用的部分之一。 STL包含了容器(container)、算法 (algorithm)、迭代器(iterator)和三个部分。
练习
编写程序,从标准输入设备读入若干string对象, 并将它们存储在一个vector对象中,然后输出该 vector对象中的所有元素。
练习 编写程序,生成一个从10到0倒序排序的 vector<int>,需用到vector的back函数
双端队列类deque 类似vector。但是支持高效地在首部插入和删除 元素。 在需要时可以改变其大小。
vector常用函数
vector常用函数 assign(first, last) 用迭代器first和last所辖范围内的元素替 换向量元素 assign(num, val) 用val的num个副本替换向量元素 at(n) 返回指定位置的元素 back() 返回最末一个元素 begin() 返回第一个元素的迭代器 capacity() 返回vector所能容纳的元素数量(在不重新分配 内存的情况下) clear() 清空所有元素 empty() 判断Vector是否为空(返回true时为空) end() 返回最末元素的迭代器(实指向最末元素的下一个位 置)
deque常用函数 front() 返回第一个元素 insert(i,x) 把x插入双端队列中由迭代器i所指明的位置 insert(i,start,end) 把迭代器start和end所辖范围内的元 素插入到双端队列中由迭代器所指明的位置 insert(i,n,x) 把x的n个副本插入双端队列中由迭代器i所 指明的位置 max_size() 返回deque所能容纳元素的最大数量(上限) pop_back() 移除最后一个元素 Pop_front() 移除第一个元素 push_back(x) 在deque最后添加一个元素x push_front(x) 在deque最前面添加一个元素x rbegin() 返回deque尾部的逆迭代器 rend() 返回deque起始的逆迭代器 reserve( size_type size) 设置deque最小的元素容纳数量 resize( size_type size, TYPE val ) 改变当前deque的大小 为size,且对新创建的元素赋值val size() 返回deque元素数量的大小 swap(deque &from) 当前deque与deque from的元素
创建deque对象
deque<type> name(start,end); 创建 了元素在指定范围内的双端队列,start 代表起始范围,end代表结束范围
deque常用函数 assign(first, last) 用迭代器first和last所辖范围内的元素替换双 端队列元素 assign(num, val) 用val的num个副本替换双端队列元素 at(n) 返回指定位置的元素 back() 返回最末一个元素 begin() 返回第一个元素的迭代器 capacity() 返回deque所能容纳的元素数量(在不重新分配内存 的情况下) clear() 清空所有元素 empty() 判断deque是否为空(返回true时为空) end() 返回最末元素的迭代器(实指向最末元素的下一个位置) erase(start,end) 删除迭代器start和end所辖范围内的双端队 列元素 erase(i) 删除迭代器i所指向的双端队列元素
创建list对象 list<type> name(start,end); 创建了 元素在指定范围内的链表,start代表 起始范围,end代表结束范围
list常用函数 assign(first, last) 用迭代器first和last所辖范围内的元 素替换链表元素 assign(num, val) 用val的num个副本替换链表元素 back() 返回最末一个元素 begin() 返回第一个元素的迭代器 clear() 清空所有元素 empty() 判断deque是否为空(返回true时为空) end() 返回最末元素的迭代器(实指向最末元素的下一 个位置) erase(start,end) 删除迭代器start和end所辖范围内 的链表元素 erase(i) 删除迭代器i所指向的链表元素
标准模板库简介
STL基础组件关系 容器(Container) - 某类对象的集合 迭代器(iterator) - 在对象集合上进行遍历 算法(algorithm) - 处理集合内的元素 容器提供迭代器,算法使用迭代器,通过迭代器操 作容器里的元素。迭代器使得容器和算法相互独立。
容器 Container
容器
向量类vector
支持随机访问迭代器,所有STL算法都能对 vector操作。 随机访问时间为常数。在尾部添加速度很快, 在中间插入慢。实际上就是动态数组。 是大小可变的向量,在需要时可以改变其大 小。
容器
创建vector对象 vector<type> name; vector<type> name(size); 创建具有size元素个数的 vector对象 vector<type> name(size,value); 创建具有size元素 个数的vector对象,并将对象的初始值设为value vector<type> name(myvector); 采用拷贝构造函数, 用现有的向量myvector创建一个vector对象
erase(start,end) 删除迭代器start和end所辖范围内的向量元素 erase(i) 删除迭代器i所指向的向量元素 front() 返回第一个元素 insert(i,x) 把x插入向量中由迭代器i所指明的位置 insert(i,start,end) 把迭代器start和end所辖范围内的元素插入到 向量中由迭代器所指明的位置 insert(i,n,x) 把x的n个副本插入向量中由迭代器i所指明的位置 max_size() 返回Vector所能容纳元素的最大数量(上限) pop_back() 移除最后一个元素 push_back(x) 在Vector最后添加一个元素x rbegin() 返回Vector起始的逆迭代器 reserve( size_type size) 设置Vector最小的元素容纳数量 resize( size_type size, TYPE val ) 改变当前vector的大小为size,且 对新创建的元素赋值val size() 返回Vector元素数量的大小 swap(vector &from) 当前vector与vector from的元素
相关主题