STL
I_O_fly
身为一个喜欢算法的小菜鸡,喜欢自己自学
展开
-
STL常用算数生成方法(fill , accumulate,交集,并集,差集)
/*调用这个算法要使用头文件numericaccumulate算法 计算容器元素累计总和 //开始 //结束 //从几开始的累加值accumulate(iterator beg, iterator end, value)fill算法 向容器中添加元素 //开始 //结束 //填充值fill(iterator beg, i...原创 2018-03-08 12:37:41 · 282 阅读 · 0 评论 -
map使用方法
/*map相对于set的区别,map具有键值和实值,所有元素根据键值自动排序,pair的第一元素被称为键值,第二元素被称为实值,map也是以红黑树为底层实现机制//map构造函数map<T1, T2> mapTT;//map默认构造函数map(const map &mp);//拷贝构造函数//map赋值操作map赋值操作map& operator=(const map ...原创 2018-03-08 12:53:20 · 544 阅读 · 0 评论 -
deque容器使用方法
/*vector是单口容器deque是双口容器//尾部push_backpop_back//头部push_frontpop_front*/# include <iostream># include <deque>using namespace std;void PrintVector(deque<int>& d){ for(deque<int>...原创 2018-03-08 12:53:47 · 419 阅读 · 0 评论 -
list容器使用方法
/*链表是由一系列的结点组成,结点包含俩个域,一个数据域,一个指针域,链表内存是连续的还是非连续的?1.非连续,添加删除元素 时间负责度都是常数项, 不需要移动元素,比数组添加删除效率高2.链表是只有在需要的时候,才分配内存3.链表需要额外的空间保存结点关系 前驱 后继关系list常用API构造函数list(begin, end);list(n, elem);list(const list &am...原创 2018-03-08 12:54:18 · 894 阅读 · 0 评论 -
String的用法大全
标准c++中String类非常强大,合理使用,能极大提高编程效率,下面就对string类的用法进行总结。头文件#include<string>String类的构造函数如下:1) string s; //生成一个空字符串s2) string s(str) //拷贝构造函数生成str的复制品3) string s(str,index) //将字符串str内“始于位置ind...原创 2018-04-06 17:50:57 · 2078 阅读 · 0 评论 -
C++String的用法和示例
转载自:https://blog.csdn.net/tengfei461807914/article/details/52203202使用场合:string是C++标准库的一个重要的部分,主要用于字符串处理。可以使用输入输出流方式直接进行操作,也可以通过文件等手段进行操作。同时C++的算法库对string也有着很好的支持,而且string还和c语言的字符串之间有着良好的接口。虽然也有一些弊端,但...转载 2018-05-15 16:47:34 · 212 阅读 · 0 评论 -
C++algorithm头文件常用算法函数
非修改性序列操作(12个)循环 对序列中的每个元素执行某操作 for_each()查找 在序列中找出某个值的第一次出现的位置 find()在序列中找出符合某谓词的第一个元素 find_if()在序列中找出一子序列的最后一次出现的位置 find_end()在序列中找出第一次出现指定值集中之值的...原创 2018-07-29 15:18:42 · 1539 阅读 · 0 评论 -
STL优先队列用法
转载自:http://www.cnblogs.com/summerRQ/articles/2470130.html优先级队列,以前刷题的时候用的比较熟,现在竟然我只能记得它的关键字是priority_queue(太伤了)。在一些定义了权重的地方这个数据结构是很有用的。先回顾队列的定义:队列(queue)维护了一组对象,进入队列的对象被放置在尾部,下一个被取出的元素则取自队列的首部。prio...转载 2018-10-18 16:10:47 · 897 阅读 · 0 评论 -
lower_bound,upper_bound的第四个参数的用法
转载自:https://blog.csdn.net/qq_35620616/article/details/702324891.lower_bound的第四个参数的用法:先看代码:#include <bits/stdc++.h>using namespace std;struct node{ int x,y;};struct cmp{ int op...转载 2019-03-18 10:05:37 · 1058 阅读 · 0 评论 -
优先队列自定义排序使用方法详解
优先队列:一般元素类型:priosity_queue<int>Q;(默认大顶堆)priosity_queue<int,vector<int>,greater<int>>Q;(小顶堆)结构体元素类型:struct node{ int x,y,z; friend bool operator <(const node &...原创 2019-04-22 12:38:02 · 1471 阅读 · 2 评论 -
关于流同步的取消
std::ios::sync_with_stdio(false); 很多C++的初学者可能会被这个问题困扰,经常出现程序无故超时,最终发现问题处在cin和cout上,(甚至有些老oier也会被这个问题困扰,每次只能打scanf和printf,然后一堆的占位符巨麻烦),这是因为C++中,cin和cout要与stdio同步,中间会有一个缓冲,所以导致cin,cout语句输入输出缓慢,这时就可以用...原创 2019-04-22 12:40:43 · 3263 阅读 · 0 评论 -
map案例搭建
/*multimap案例公司今天招聘了5个员工, 5名员工进入公司之后,需要指派员工在那个部门工作。人员信息有:姓名 年龄 电话 工资等组成通过 multimap进行信息的插入 保存 显示分部门显示员工信息 显示全部员工信息*//*map查找函数count(keyElem)返回容器中key为keyElem的对组个数,对map来说,要么是0,要么是1,对multimap来说,值可能大于1*/# in...原创 2018-03-08 12:52:53 · 229 阅读 · 0 评论 -
set容器使用方法
/*set/multiset特性 set/multiset的特性是所有元素会根据元素的值自动进行排序,set是以RB-tree (红黑树 平衡二叉树的一种)为底层机制,其查找效率非常好 set容器中不允许重复元素,multiset允许重复元素set构造函数set<T> st;//set 默认构造函数mulitset<T> mst;//mulitset默认构造函数set(co...原创 2018-03-08 12:52:20 · 3763 阅读 · 0 评论 -
string使用方法
# include <iostream># include <string>using namespace std;void test01(){ string s1;//调用无参构造 string s2(10, 'a'); string s3("abcdefg"); string s4(s3);//拷贝构造 cout << s1 << endl; c...原创 2018-03-08 12:51:50 · 401 阅读 · 0 评论 -
STL常用排序合并算法
/*//必须有序的才行merge 算法 容器元素合并,并存储到另一个容器里beg1, end1, beg2, end2, dest 目标容器开始迭代器merge(iterator beg1, iterator end1, iterator beg2, iterator end2, iterator dest);//打乱排序random_shuffle(iterator beg, iterator ...原创 2018-03-08 12:38:40 · 246 阅读 · 0 评论 -
STL常用拷贝替换交换算法
/*//拷贝copy(iterator beg, iterator end, iterator dest)//替换replace(iterator beg, iterator end, oldvalue, newvalue)//交换//写俩个容器swap(container c1, container c2)*/# include <iostream># include <vec...原创 2018-03-08 12:39:29 · 231 阅读 · 0 评论 -
STL综合算法搭建及实现案例
/* 演讲比赛1.某市举行一场演讲比赛,共有24个人参加。比赛共三轮,前俩轮为淘汰赛,第三轮为决赛2.比赛方式:分组比赛,每组6个人:选手每次要随机分组,进行比赛: 第一轮分为4个小组,每组6个人。比如100-105为一组,106-111为第二组,依次类堆, 每人分别按照抽签顺序演讲。当小组演讲完后,淘汰组内排名最后的三个选手,然后继续下一个小组的比赛。 第二轮分为2个小组,每组6人。比赛...原创 2018-03-08 12:40:59 · 361 阅读 · 0 评论 -
函数对象适配器
/*函数对象适配器 函数对象适配器是完成一些配接工作,这些配接包括绑定(bind),否定(negate), 以及对一般函数或成员函数的修饰,使其成为函数对象,重点掌握函数对象适配器(红色字体); bind1st:将参数绑定为函数对象的第一个参数 bind2nd:将参数绑定为函数对象的第二个参数 not1:对一元函数对象取反 not2:对二元函数对象取反 ptr_fun仿函数适配器 mem_fun...原创 2018-03-08 12:46:22 · 321 阅读 · 0 评论 -
STL队列容器
//队列一段插入另一端删除,队尾插入,队头删除//push()入队 pop()出队 back()队尾 front()对头//不能进行遍历,不支持迭代器,不支持随机访问# include <iostream># include <queue>using namespace std;void test01(){ queue<int> q;//创建队列 q.push(...原创 2018-03-08 12:46:53 · 395 阅读 · 0 评论 -
STL常用遍历查找算法
# include <iostream># include <vector># include <algorithm>/*std::string sl = "hello";std::transform(sl.begin(), sl.end(), sl.begin(), toupper); 这样得到 sl 值是 (大写的) HELLOtransform 是遍历...原创 2018-03-08 12:47:44 · 459 阅读 · 0 评论 -
vector容器使用方法
/*vector<T> v; //采用模板实现类实现,默认构造函数vector<T> s(v.begin(), end());//将v[begin(), end]区间的元素拷贝给本身vector<T> v(n, elem);//构造函数将n个elem拷贝给本身vector<T> v(const vector &vec);assign(v.be...原创 2018-03-08 12:48:46 · 673 阅读 · 0 评论 -
STL算法迭代器分离案例
# include <iostream>using namespace std;//算法 负责统计某个元素的个数int mycount(int *start, int *end, int val){ int num = 0; while(start != end) { if(*start == val) { num++; } start++; } return num;}i...原创 2018-03-08 12:49:30 · 163 阅读 · 0 评论 -
STL共性机制和函数对象的概念
/*容器共性机制1.除了queue和stack之外,每个容器都提供可返回迭代器的函数,运用返回的迭代器就可以访问元素2.通常STL不会抛出异常,需要使用者传入正确的参数3.每个容器都提供了一个默认的构造函数和拷贝构造函数4.大小相关的构造方法 (1)size()返回容器中元素的个数(2)empty()判断容器是否为空 vector deque list set multiset m...原创 2018-03-08 12:50:11 · 249 阅读 · 0 评论 -
stack使用方法
# include <iostream># include <stack># include <vector>using namespace std;void test01(){ //初始化 stack<int> s1; stack<int> s2; vector<int> s3; //stack 操作; s1.push(10...原创 2018-03-08 12:51:18 · 3207 阅读 · 4 评论 -
关于C++transform大小写转换
在C++语言中tolower()函数是把字符串都转化为小写字母touppre()函数是把字符串都转化为大写字母其中需要注意的是:这两个函数的声明在头文件<cctype>中但是经过测试,如果不包含头文件<cctype>仅仅有<iostream...原创 2019-05-06 09:06:34 · 688 阅读 · 0 评论