STL
文章平均质量分 56
zzyczzyc
越努力越幸运
展开
-
C++进阶STL-常用的查找算法
#include <algorithm>find#include "stdafx.h"#include <iostream>#include <vector>#include <algorithm>using namespace std;class Person原创 2018-10-11 12:08:11 · 336 阅读 · 0 评论 -
C++进阶STL-常用的排序算法
merge:将两个容器的元素融合成一个容器中,并进行排序merge(v1.begin(), v1.end(), v2.begin(), v2.end(), v3.begin(), Compare()); 进行操作前,两个容器的排序规则需要一样,第三个容器的排序规则也需要相同 默认是进行从小到大,如需要自己定义规则 v1和v2可以是支持随机访问的,也可以是不支持随机访问的容器,如list容...原创 2018-10-12 14:58:12 · 226 阅读 · 0 评论 -
C++进阶STL-map、multimap
map\multimap容器(1)map相对于set来说,map具有键值和实值,将元素组合成pair再插入到map容器,pair的第一个元素被称为键值,第二个元素被称为实值。(2)map也是以红黑树为底层的实现机制,map容器根据插入元素的键值会自动排序(3)map的键值不可以重复,实值可以重复,multimap键值实值都可以重复(4)map的键值不可修改,可以改变实值,想修改...原创 2018-10-05 15:29:57 · 252 阅读 · 0 评论 -
C++进阶STL-常用的拷贝和替换算法
copy例子:将v1的第二个元素开始到最后一个元素,拷贝给v2#include "stdafx.h"#include <iostream>#include <algorithm>#include <vector>using namespace std;原创 2018-10-12 15:47:39 · 348 阅读 · 0 评论 -
C++进阶STL-常用集合算法
交集OutputIterator set_intersection (InputIterator1 first1, InputIterator1 last1,InputIterator2 first2, InputIterator2 last2,OutputIterator result)返回值是交集最后一个元素的下个元素的迭代器例子:#include "stdafx.h"#i...原创 2018-10-12 16:46:37 · 492 阅读 · 0 评论 -
C++进阶STL-STL共性、使用时机
共性我们给STL容器中插入数据的时候,容器内部做了拷贝动作,而不是将原始数据放到容器中,所以我们提供的元素必须能够被拷贝,对象成员如果有指针的话,考虑浅拷贝、深拷贝的情况(有自定义拷贝构造,重载=操作符)除了queue和stack之外,每个容器搜可以返回迭代器,通过迭代器访问元素 都有size()、empty(),返回容器中元素个数,判断容器是否为空每个容器都有默认构造函数和默认拷贝构造...原创 2018-10-06 12:39:03 · 222 阅读 · 0 评论 -
C++进阶STL-综合案例
演讲比赛演讲说明:24名同学参加演讲比赛,分为三轮。前两轮淘汰赛,后一轮是决赛。比赛方式:第一轮分4组,每组6人,每次随机分组,再进行比赛 每组按顺序演讲完,评委打分,淘汰最后三名选手,然后进行下一轮 第二轮剩下2个组,每组6人,每组再淘汰3人,进入决赛 第三轮剩下1组,最后淘汰3名,剩下前3名获胜代码:#include "stdafx.h"#in...原创 2018-10-13 11:42:13 · 541 阅读 · 0 评论 -
C++进阶STL-函数对象
函数对象的概念 重载 ()操作符 的类,它的对象叫做函数对象,即它是 类似于函数的 对象(它可以向函数一样调用),也叫作仿函数。注意:函数对象(仿函数)是一个类,不是一个对象。 重载操作符()有一个参数,称为一元仿函数,有两个参数,就叫二元仿函数。如果返回值是bool类型的函数对象或者普通函数,有一个参数叫做一元谓词… 函数对象做参数和返回值#include "st...原创 2018-10-06 16:46:35 · 392 阅读 · 0 评论 -
C++进阶STL-函数对象设配器
函数对象设备器函数对象设备器是完成一些配接工作,配接包括 绑定(bind),否定(negate),以及对一般函数或成员函数的修饰,使其成为函数对象绑定设备器作用:将二元的函数对象转成一元的函数对象bind1st、bind2nd bind1st:将参数绑定为函数对象的第一个参数#include "stdafx.h"#include <iostream&a原创 2018-10-06 18:55:06 · 187 阅读 · 0 评论 -
C++进阶STL-智能指针
参考文章目录介绍四种智能指针std::auto_ptr(已经被C++11弃用)std::unique_ptrstd::shared_ptrstd::weak_ptr介绍在使用智能指针之前,一般都是用new和delete来进行内存的管理,但是一旦忘记delete,这样容易造成内存泄露。从而导致智能指针的出现,它只需要你创建,之后就不需要你管,也不需要你手动释放,到该释放的地方,它会自动释放。...原创 2019-05-24 16:25:11 · 649 阅读 · 0 评论 -
c++进阶STL-随机数
文章目录随机数随机数原创 2019-06-27 22:12:18 · 2739 阅读 · 0 评论 -
C++计时器-chrono
包含的头文件 #include <chrono>时钟system_clocksteady_clockhigh_resolution_clock时间单位hoursminutessecondsmillisecondsnanoseconds原创 2019-07-04 09:59:19 · 531 阅读 · 0 评论 -
C++进阶STL-set、multiset容器
set、multiset容器set和multiset基于红黑树,自动排序set中元素不可以重复,multiset中元素可以重复,都在<set>头文件中提供迭代器,但是不能通过迭代器改变值,否则破坏了规则,如果需要改变,先删除在添加。insert() 插入数据set容器构造set<T> setT; //默认构造multiset<T> mul...原创 2018-10-04 09:07:14 · 174 阅读 · 0 评论 -
C++进阶STL-容器的综合例子
题目://5个选手,10个评委//10个评委给每个选手打分,去掉最高分和最低分,再取平均值就是最终的得分//最后再给每个选手按分数排序#include "stdafx.h"#include <string>#include <iostream>#include <vector>#include <deque>#include &...原创 2018-10-04 08:48:30 · 259 阅读 · 0 评论 -
C++进阶STL-模板
模板的机制模板并不是能处理任何类型的数据,只是它根据传入参数的类型的不同生成了不同的 函数/类 体(我们在不使用函数模板的正常操作,只不过编译器帮我们做了)。在此编译过程中,存在两次编译,一次是模板,一次是实例化的函数/类。函数模板的定义template &amp;lt;class V1,class V2…&amp;gt;// 或者 template &amp;lt; typename V1….&amp;gt; 告诉编...原创 2018-10-03 16:00:22 · 285 阅读 · 0 评论 -
C++进阶STL-类型转化
1. static_cast: 普通内置数据类型之间转化,具有继承关系之间的指针或者引用之间的转化class Building{};class Animal{};class Cat:public Animal{};//int -&gt; char int a = 97; char c = static_cast&lt;char&gt;(a); cout &lt;&lt; ...原创 2018-10-03 16:24:12 · 270 阅读 · 0 评论 -
C++进阶STL-异常处理
异常抛出是跨函数的返回值:只是返回给调用的这一层函数异常:最里面的函数func1如果抛出异常给 调用的func2 , 如果func2没有处理, 再抛出给调用func2 的 func3, 如果在最上层的还没处理,则程序终止。栈解旋当函数抛出异常的时候,此函数体内定义的局部变量自动析构、释放。异常的接口申明(1)可以抛出 int char float类型的异常,不可以抛其他类型...原创 2018-10-03 16:37:31 · 709 阅读 · 0 评论 -
C++进阶STL-标准输入输出 IO
基本概念从键盘到程序 标准输入 input从程序到显示器 标准输出 output标准输入+标准输出=标准I/O文件的输入和输出叫做文件I/O标准输入输出流的对象cerr : 没有缓冲区clog 、cin、 cout :有缓冲区cincin.get() :读取一个字符,返回值是字符,也可以传入形参,读完之后缓冲区就没有这个字符cin.get(ch) : 读取一...原创 2018-10-03 17:29:33 · 357 阅读 · 0 评论 -
C++进阶STL-String容器
string初始化string s1;//无参构造string s2(10, ‘a’); //10个astring s3(“julian”); //c stylestring s4(s3);//拷贝构造string的赋值s1=”julian”;s1= ’j’ ;s1=s2; //等号操作符重载s1.assign(“julian”);//使用成员方法string &amp;a...原创 2018-10-03 18:54:23 · 194 阅读 · 0 评论 -
C++进阶STL-vector容器
vector 容器 (动态数组) : 单口容器提供两个迭代器(正向、反向): begin() end() rbegin() rend()vector 容器动态增长的原理当插入新元素的时候,如果空间不足,则vector会申请更大的内存空间(默认是2倍原来大小),将原来的数据拷贝到新内存空间,释放原来的内存空间,再把新元素插入。vector 容器初始化vector...原创 2018-10-03 19:52:34 · 220 阅读 · 0 评论 -
C++进阶STL-deque容器
deque容器 (双端队列容器)deque容器构造函数deque <T> deque1; //默认拷贝构造deque(begin,end) // 将[begin end]之间的元素拷贝给本身deque( n, element) //将 n 个 element 拷贝给本身deque( const deque& deq) ...原创 2018-10-03 20:07:04 · 243 阅读 · 0 评论 -
C++进阶STL-stack容器
stack容器 (先进后出)stack容器特性不能遍历,也不支持随机存取 (at() / [ ] )想访问下面的元素,必须将上面的删除(不提供迭代器)stack容器API赋值Stack& operator=(const stack& stack1) //重载=操作符存取push(): 压栈pop(): 出栈top(): 返回栈顶元素...原创 2018-10-03 20:14:24 · 216 阅读 · 0 评论 -
C++进阶STL-queue容器
queue容器 (队列容器:先进先出)queue容器特性不提供迭代器,不能遍历,不能随机存取queue容器API构造queue queue1; //无参构造queue(const queue& queue1) //拷贝构造赋值queue& operator=(const queue& queue1) //重载=操作符存取push...原创 2018-10-03 20:20:40 · 145 阅读 · 0 评论 -
C++进阶STL-常用的遍历算法
for_each#include "stdafx.h"#include <iostream>#include <algorithm>#include <vector>using namespace std;class Person{public: Person(int age, int id) :m_age(age), m_id(id) ...原创 2018-10-11 17:37:35 · 427 阅读 · 0 评论 -
C++进阶STL-list容器
list 容器由节点组成,每个节点有两个域,一个存放数据,一个存放地址(指向下一个元素的地址),它的存储控件可以不连续。不支持随机访问构造函数list&lt;T&gt; listT // 采用模板实现,默认构造。list(begin,end) // 将begin end之间的元素拷贝给自己list(n,element) // 将n个element拷贝给自己list(c...原创 2018-10-04 08:36:58 · 250 阅读 · 0 评论 -
STL中heap的用法
make_heap()原创 2019-08-05 10:40:16 · 319 阅读 · 0 评论