stl

STL之bitset

爱⌒轻易说出口 提交于 2020-03-10 20:27:02
C++ bitset使用指南 介绍 :C++语言的一个类库,用来方便地管理一系列的bit位而不用程序员自己来写代码。 bitset除了可以访问指定下标的bit位以外,还可以把它们作为一个整数来进行某些统计。方便储存bool结果 做数字压缩。(来自百度百科) 声明: bitset< size> varm(M) 其中varm为变量名。 size表示该类型在内存中占的位数,是二进制。 M表示变量varm的初始值。 1 、bitset < 4 > bitset1 ;    //无参构造,长度为4,默认每一位为0 //0000 2 、bitset < 8 > bitset2 ( 12 ) ;    //长度为8,二进制保存,前面用0补充 //00001100 3 、string s = "100101" ; bitset < 10 > bitset3 ( s ) ;    //长度为10,前面用0补充 //0000100101 4 、 char s2 [ ] = "10101" ; bitset < 13 > bitset4 ( s2 ) ;    //长度为13,前面用0补充 //0000000010101 5 、bitset < 10 > bitset5 ( "11111" ) ; // C++ 11 语法 //0000011111 注意: 声明时若参数长度比size大

05_泛型编程与STL之黑马程序员day05

拈花ヽ惹草 提交于 2020-03-10 14:01:24
#2020/03/10 day01至day05完结 1.map容器 此处不再对函数具体介绍,可进入 Cpp参考 # include <iostream> # include <map> using namespace std ; //map容器初始化 void test01 ( ) { //map容器模板参数,第一个参数key的类型,第二参数value类型 map < int , int > mymap ; //插入数据 pair.first key值 piar.second value值 //第一种 pair < map < int , int > :: iterator , bool > ret = mymap . insert ( pair < int , int > ( 10 , 10 ) ) ; //iterator表示插入的位置 if ( ret . second ) { cout << "第一次插入成功!" << endl ; } else { cout << "插入失败!" << endl ; } ret = mymap . insert ( pair < int , int > ( 10 , 20 ) ) ; if ( ret . second ) { cout << "第二次插入成功!" << endl ; } else { cout << "插入失败!" <<

STL常用操作:stack

╄→尐↘猪︶ㄣ 提交于 2020-03-10 06:18:37
1.初始化 stack<int> s1; //创建空栈 stack<int> s2(s1); //拷贝构造 deque<int> dq{1,2,3,4,5}; stack<int> s3(dq); //deque构造 stack<int> s4(move(s2)); //移动构造 stack<int,vector<int>> s5; //指明使用vector作为stack的底层实现 2.常用操作 s.push(2); //将2入栈 s.emplace(2); //将2入栈 s.top(); //返回栈顶元素 s.pop(); //将栈顶元素弹出 s.empty(); //是否为空 s.size(); //队列大小 3.不常用操作 s1.swap(s2); 4.遍历 while(!s.empty()) { cout << s.top() << " "; s.pop(); } 5.算法 来源: CSDN 作者: zhuikefeng 链接: https://blog.csdn.net/zhuikefeng/article/details/104748273

第一二周的学习总结

让人想犯罪 __ 提交于 2020-03-09 09:52:58
1递归算法,递归算法是这两周练习的重点,我通过做题认为,它有一点类似于循环,但又不是循环,而是在函数里多次调用函数,将复杂的问题转化为简单到没法在简单的形式,它容易理解,但又不容易在脑子里形成一个明确的思路,碰到难题还是需要花时间去理清思路。需要注意的是递归时的结束条件。 2贪心算法,经过两节课的学习与例题讲解,我对贪心算法有了很多了解,顾名思义,贪心就是要将利益最大化,也就是得到问题的最优解。同时,在遇到非常复杂的问题时,可以分解为很多的子问题,然后求最优解。 3 STL,今天的这节课老师讲到了stl的用法。Stl的作用很多,很多定义与数组类似但又很多不同,理解起来还是比较容易的,但是还没有使用过·,自己的见解还需要提高。 其实经过了这两个星期的学习,真的感觉自己对c++的使用还有非常非常大的欠缺,有非常多需要自己学习的地方,也是因为自己的懒惰,导致自己第一个星期没有做好对知识的掌握,自己对于学习算法,的确存在很大的问题,也有很多的弱项需要去补,通过做题也体会到了一个多小时都无法ac的困难,接下来的日子,我会收起自己的懒惰,去用心的学习这门语音。 来源: CSDN 作者: qq_45937775 链接: https://blog.csdn.net/qq_45937775/article/details/104742840

STL的简单应用1

十年热恋 提交于 2020-03-09 08:17:17
string: C++的字符串类型 标准库string类//include string表示可变长度的字符序列 字符串是对象 string类支持字符串对象的各种操作 各种初始化方式. 字符串之间的复制、比较、连接. 查询字符串长度和判断字符串是否为空. 访问字符串中的单个字符. string的简单使用 #include <iostream> #include <string> using namespace std; int main() {string s1, s2;//创建两个空字符串对象 string s3 = "Hello, world!"; //创建s3, 并初始化 string s4("I am ") ; s2 = "Today" ;//赋值 s1=s3+" "+s4;//字符串连接 s1+="5";//术尾追加 cout << s1 + s2 + "!”<<endl; //输出字符串内容 string的常用操作 读写string对象时应用C++表示方法 即 string s; cin>>s; cout<<s; 同时可以用循环语句来读写string的对象 string word; while(cin>>word) cout<<word; 写string时不能包含有空格的语句 为了弥补这一缺陷 我们可以用 getline() 函数 (以回车为结束标志) 此函数包括两个参数

STL学习总结(string)

给你一囗甜甜゛ 提交于 2020-03-09 04:46:26
1. string的简单使用 string 表示可变长度的字符序列,字符串是对象。 string 类支持字符串对象的各种操作。 1.各种初始化方式 2.字符串之间的复制、比较、连接 3.查询字符串长度和判断字符串是否为空 4.访问字符串中的单个字符 使用string 类要包含头文件string 我主要是学到了:string的读入,1. 利用while(cin>>s)while(scanf("%s",s)!EOF)空格是分隔符,当输入无效字符时输入停止; 2.getline()函数;getline(cin,s);当输入换行符时停止;每次可以输入一行。也可以利用while持续输入。 上面这些可以帮助我 解决输入问题。 empty()函数判断string对象是否为空,返回一个 布尔值 string line; if(!line.empty()) //line不为空,输出 size()函数返回string 对象的长度,就是字符的个数; 允许把一个string对象的值赋给另一个string对象 也可以为string对象赋一个字符串字面值常量 string s1 = “hello”, s2; s2 = s1; s1 = “C++ Programming Language”; if (n < hexdigits.size()) //检查下标范围 cout <<"Hex number is: "<

今年阅读书籍计划,C++之STL篇

ぐ巨炮叔叔 提交于 2020-03-09 04:09:32
  由于在2012年底的时候下定决心进入cocos2dx的领域,所以打算重拾放下已久的C++,重新进入,期望今年能够开发几款cocos2dx的移动平台游戏,实现心中愿望。   首先我打算将C++ STL的知识捡起来,做一个扎实的功底建设,再考虑进入cocos2dx的世界遨游,因为STL作为C++的标准库,将C++的各种模版知识运用的非常娴熟,这也是2000年后C++程序员应该有的编程范式。下面几本书是我打算近期阅读学习的: C++标准程序库 :自修教程与参考手册      这本书作为学习STL的第一本书是绝对适合的,一开始就会有C++语言的必备知识,以免你一头扎进STL中直接淹死。这本书我在互动有详细的书评,有兴趣的可以去看看。   http://product.china-pub.com/7645   互动已经售罄,但是我看在京东商城还有货,不过去年已经出版了该书的第二版英文版,如果英语好的读者可以直接购买阅读,英语不好,可以稍微等等,购买本书的第二版,改动比较大,有等待的价值。不过这本书第一版的两个译者的翻译质量是非常有水准的,侯捷和孟岩在业内也是很有名气的两个人,质量信得过。   Effective STL 中文版: 50条有效使用STL的经验   说到 Scott Meyers的大名,C++程序员应该是无人不知无人不晓,他开创性的写了两本C++巨著《Effective C+

STL——仿函数

百般思念 提交于 2020-03-08 11:28:43
1,仿函数只为算法来服务。仿函数,由名字可以确定是模仿函数的意思,因此必须要重载()。这样创建出来的对象是一个对象,像一个函数,因此叫做仿函数。 2,struct plus:public binary_function<T, T, T>继承模板库的函数,因为 这是可以使用适配的条件 ,有些时候不继承也可以完成某些功能,不继承可以完成的功能,继承以后一定可以完成,继承以后能完成的功能,不继承不一定能完成。STL规定每个Adaptable Function都应该挑选适当的来继承,因为 Function Adapter将会提问问题 。 //算法类 template <class T> struct plus:public binary_function<T, T, T>{ T operator() (const T&x, const T&y) const {return x + y;} }; template <class T> struct minus:public binary_function<T, T, T>{ T operator() (const T&x, const T&y) const {return x - y;} }; //逻辑运算类 template <class T> struct logical_and:public binary_function<T, T,

C/Cpp / STL / vector 释放内存的方案

青春壹個敷衍的年華 提交于 2020-03-07 23:20:27
std::vector<T> vSum; 答案 1、当 T 为 指针 时,释放内存的代码如下: std::vector<T>().swap(vSum); 2、当 T 为 原生类型(int、float、char) 时,释放内存的代码如下: std::vector<T>().swap(vSum); 3、当 T 为 类对象 时,释放内存的代码如下: vSum.clear(); std::vector<T>().swap(vSum); 说明 大家可以看到,释放内存共用到了两个函数,分别是 clear() 和 swap() ,弄明白这两个函数的功能也就清楚了 vector 释放内存的原理了。 1、clear() 函数(stl_vector.h) 有此可知 clear 函数调用的是 erase 函数。 erase 函数的操作过程是将 last 到 finish 之间的元素移动到 first 元素的位置,然后删掉从 first + (finish - last) 为开始 finish 之间所有的元素。删除操作就是由 destory() 函数完成。下面看下 destory 函数的内容。 (stl_construct.h) 我们可以发现 __destroy 比 destroy 多了第3个参数 value_type(first) ,该函数的原型如下:(stl_iterator.h) 该函数的作用是返回

C/C++语言常用函数库

倾然丶 夕夏残阳落幕 提交于 2020-03-07 23:16:49
C/C++语言常用函数库-2020-3-7 C语言常用函数库-2020-3-4 函数库 作用 #include<assert.h> 设定插入点 #include<ctype.h> 字符处理 #include<errno.h> 定义错误码 #include<float.h> 浮点数处理 #include<fstream.h> 文件输入/输出 #include<iomanip.h> 参数化输入/输出 #include<iostream.h> 数据流输入/输出 #include<limits.h> 定义各种数据类型最值常量 #include<locale.h> 定义本地化函数 #include<math.h> 定义数学函数 #include<stdio.h> 定义输入/输出函数 #include<stdlib.h> 定义杂项函数及内存分配函数 #include<string.h> 字符串处理 #include<strstrea.h> 基于数组的输入/输出 #include<time.h> 定义关于时间的数间的函数 #include<wchar.h> 宽字符处理及输入/输出 #include<wctype.h> 宽字符分类 C++语言常用函数库-2020-3-5 函数库 作用 #include <algorithrm> STL通用算法 #include<bitset> STL位集容器