![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STL
HymanLiuTS
年过而立,又酸又臭,忙时敲代码,闲时读书写文章。
展开
-
STL容器-序列式容器vector
1 容器类型:序列式容器2、容器的初始化与元素的存放vector vec;//初始化存放int型的向量vec 2.1 从后面压入元素100 vec.push_back(1); 2.1 从后面弹出元素,并用temp接收 int temp=vec.pop_back();3、容器的大小和容量 3.1 容器现有元素的数量 vec.size() 3.2 容器可容原创 2015-11-04 18:47:26 · 853 阅读 · 0 评论 -
STL输入和输出流-定义
一、iostream对象1.1 输入和输出流对象定义:stream是一条数据流,字符序列在其中川流不息。头文件:#include包含头文件后,程序将自动创建8个stream对象(4个用于窄字符,4个用于宽字符):cin/wcin 对应标准输入stream,默认关联到标准输入设备。cout/wcout 对应标准输出stream,默认关联到标准输出设备。cerr/wce原创 2016-01-18 23:08:27 · 1701 阅读 · 0 评论 -
STL算法库-数字运算(三)
四、通用数值计算头文件:#include4.1 求和(accumulate)T accumulate(iterator first,iterator last T val);计算[first,last]中数字的总和,将该值添加到数值val上.T accumulate(iterator first,iterator last,T Val, BinaryOperator op)原创 2016-01-18 23:02:43 · 1066 阅读 · 0 评论 -
STL算法库-数字运算(二)
三、数组(向量)运算STL提供了一个数组类valarray,用于实现数值数组的运算,其代表数值线性序列。3.1 头文件#include3.2 构造函数valarray();explicite valarray(size_t n);valarray(const T& val,size_t n);valarray(const T* P,size_t n);valar原创 2016-01-12 20:14:49 · 1122 阅读 · 0 评论 -
STL算法库-删除算法
一、remove原型:remove(iterator first,iterator last,const T& val)定义:移除所有值到等于val的元素,函数返回删除后的序列的末尾位置,序列的大小不变,用最后一个元素进行补齐原型:remove_if(iterator first,iterator last,Pred pr)定义:移除所有使得pr值为true的元素,函数返回删除后序原创 2016-01-04 08:22:00 · 945 阅读 · 0 评论 -
STL迭代器
一、 迭代器的分类1.1 输入迭代器输入迭代器主要用于为需要的数据源提供输入接口,该数据源可以是容器、数据流等。输入迭代器只能够从一个序列中读取数据,此类迭代器可以被修改和引用。只能一个一个读取,并且按此顺序传回元素值。最简单的例子就是从标准输入读取数据的迭代器,同一个值不会被读取两次,一旦从输入流中读取一个字后,下次读取时会读取另一个字。1.2 输出迭代器输出迭代器,主要用于输出原创 2016-01-05 13:54:45 · 841 阅读 · 0 评论 -
STL算法库-数字运算(一)
一、定义包括区间的内容累积、内部乘积、小计、计算相邻对象差等函数二、复数运算2.1 头文件#include "complex"2.2 复数成员函数2.2.1 构造函数:complex(const T& re=0,complex T& im=0);complex(const complex& x);2.2.2 实部和虚部函数T real()const;原创 2016-01-11 22:49:03 · 980 阅读 · 0 评论 -
STL算法库-排序和相关操作(二)
六、合并排序6.1 两个已序集合的总和(merge)原型:merge(iterator1 first1,iterator1 last1,iterator2 first2,iterator last2,OutputIterator dest)定义:将两个已序集合进行合并,合并后进行重新排序,不排除重复元素,必须保证原序列有序原型:merge(iterator1 first1,iter原创 2015-12-28 23:27:08 · 796 阅读 · 0 评论 -
STL算法库-排序和相关操作(一)
一、定义通过对容器中元素的赋值和变换,改变元素顺序,不适合关联式容器二、全部元素排序该排序算法只支持随机存储迭代器,因此只适合vector和deque型容器,不适合list容器,list有自己的成员函数sort进行排序原型:sort(iterator begin,iterator end);定义:默认升序排序原型:sort(iterator begin,iterator e原创 2015-12-24 18:25:50 · 710 阅读 · 0 评论 -
STL算法库-修改序列式操作(二)
五、替换原型:replace(iterator first,iterator last,const T& OldValue,Const T& NewValue);定义:在区间[first,last]中,用NewValue替换OldValue原型:replace(iterator first,iterator last, Pred pred,const T& NewValue);定义原创 2015-12-21 22:48:30 · 1100 阅读 · 0 评论 -
STL算法库-修改序列式操作(一)
定义:一般不直接改变容器中元素的值,或者在复制到另一区间的过程中改变元素值一、复制原型:iterator2 copy(iterator1 first,iterator1 end,iterator2 dest);定义:copy函数正向遍历序列,如果要把一个区间复制到前端,应该使用copy(),此时目标位置应该在first之前原型:iterator2 copy_backward(ite原创 2015-12-15 23:45:39 · 929 阅读 · 0 评论 -
STL算法库-非修改序列式操作(二)
六、搜寻算法6.1 第一组搜索算法函数(搜寻第一个匹配元素的位置)原型:iterator find(iterator begin,iterator end,const T& value)定义:找出第一个和value相等的元素的迭代器,若搜索失败,返回end原型:iterator find_if(iterator begin,iterator end,UnaryPredicate原创 2015-12-09 21:03:22 · 767 阅读 · 0 评论 -
STL算法库-非修改序列式操作(一)
一、定义不改变元素的顺序,也不改变元素值,可用于所有的容器操作。二、for_each()算法原型:for_each(iterator begin,iterator end,proc op)作用:for_each算法实现对区间[begin,end]中每一个元素均调用进程op2.1 一般用法如下,打印输出容器中的每一个元素:#include "stdafx.h"#incl原创 2015-12-09 20:05:31 · 1168 阅读 · 0 评论 -
STL容器-关联式容器map/multimap
容器map是键-值对的集合,可理解成关联数组,可通过键作为下标获取对应的值一、map/multimap的定义、初始化1、定义一个空的映射,默认按照升序排序map mymap;2、定义一个按照键值逆序排序的映射方案一,在类模板中加入仿函数map> mymap;方案二,在类的构造函数中加入仿函数map mymap(greater);3、用另外一个映射初始化映射m原创 2015-11-30 08:20:02 · 967 阅读 · 0 评论 -
STL容器-关联式容器set/multiset
集合元素既充当存储的数据,又充当数据的关键码,集合更像一个有序链表,元素默认升序存储。一、集合set的定义1、定义一个空的集合,自动按照升序排序:set myset;2、定义一个空的集合,按照降序排序,有两种形式,可能不同的编译器会支持不同形式形式1,模板含有多个参数(vs2010中调试通过):set> myset;形式2,构造函数含有多个参数的形式:set myset(gre原创 2015-11-23 11:18:06 · 891 阅读 · 0 评论 -
STL容器-序列式容器deque
deque的最重要的特性是在deque两端放置元素和删除元素是高效的,原因在于deque型序列开放了序列的两端,两端都能插入和删除数据。一、初始化(以存放int型数据的双端队列为例)deuqe mydeque;//初始化一个空的队列deuqe mydeque(5);//初始化含有5个元素的队列deque mydeque(5,1);//初始化一个含有5个元素1的队列deque m原创 2015-11-20 19:21:14 · 1167 阅读 · 0 评论 -
STL容器-序列式容器list
list的优势在于在任何位置执行插入和删除动作都非常迅速,因为改变的仅仅是链接。一 初始化(以元素为int型的list为例)list listname;list listname(5);list listname(5,1);//包含5个元素1的列表list listname(其他list);list listname(elselist.begin(),elselist.en原创 2015-11-17 20:11:56 · 832 阅读 · 0 评论 -
STL输入和输出流-格式化
1.1 格式化标记使用方法:通过成员函数setf()和unsetf(),可接收这些标记做实参。std::ios::boolalphastd::ios::hexstd::ios::internalstd::ios::leftstd::ios::octstd::ios::rightstd::ios::scientificstd::ios::showbasestd原创 2016-01-28 23:14:49 · 1894 阅读 · 0 评论