- 博客(44)
- 收藏
- 关注
原创 c++值类别(左值与右值)
任意一个值要么是左值要么是右值,左值可以拥有左值属性和右值属性,换言之,但凡能使用右值的地方都能使用左值,反之则不行。按照我们上面说的,出现在=左边的值为左值,第一行中a为左值,第二行a出现在=右侧,那么a便是右值吗?,虽然b的类型是右值引用,但是b本身是左值,b出现在了=左侧且可以使用取址符&取址。,严格来讲左值指的是有固定地址的值,其值可确定某个对象或函数的标识。所以右值虽然绑定在了右值但它仍然是左值!,所以右值虽然绑定在了右值但它仍然是左值。,而现在右值指的是不能用取址符取址的值。
2023-04-10 14:39:35
613
原创 设计模式之命令模式
一、定义 命令模式:讲“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也可以支持撤销的操作。二、要点命令模式将发出请求的对象和执行请求的对象解耦。 在被解耦的两者之间是通过命令对象进行沟通的,命令对象封装了接收者和一个或者一组动作 调用者通过调用命令对象的execute()发出请求,这会使得接收者的动作被调用。 调用者可以接受命令当作参数,甚至在运行时动态的进行。 命令可以支持撤销,做法是实现一个undo()方法来回到execture()被执行前的状态...
2021-02-21 17:48:42
160
原创 redis(一)常见数据类型--字符串
1. 字符串A. 赋值和取值SET key valueGET key递增数字INCR key例:redis > INCR num(integer) 1Redis >INCR num(integer) 2注意:当前不存在时默认为0,所以第一次递增之后是1。当建的类型不是整数时会提示错误。增加指定的整数INCRBY key increment例:INCRBY num 2(interger) 5减少指定的整数DECR key...
2020-09-25 15:57:29
203
原创 TCP-IP详解卷一(一)概述
2020年9月17日16:49:32概述分层,通常网络分层有两种分层方式,分别是七层结构和四层结构,这里说的分层是四层结构: 1.应用层(FTP和e-mail等) 2.运输层(TCP和UDP) 3.网络层(IP、ICMP和IGMP) 4.链路层(设备驱动程序及接口卡) 其中每一层所负责的功能不同:链路层:也称数据链路层或网络接口层,用来处理与电缆或其他传输媒介的物理接口细节。 网络层:也称互联网层,处理分组在网.
2020-09-17 17:33:56
736
原创 Mysql(九)组合查询UNION
某些情况下,我们需要在多个表中查询数据。例:SELECT ts_codeFROM BasicLevelWHERE `level` = 0UNIONSELECT ts_codeFROM StockBasicDataWHERE total_income = 0ORDER BY ts_code该语句就是在BasicLevel中查找level = 0和Stoc...
2020-04-27 16:14:47
151
原创 Mysql(八)创建高级联结
使用表别名作用:缩短SQL语句 允许在单条SELECT语句中多次使用相同的表SELECT b.ts_code,COUNT(*)FROM StockBasicData AS s,BasicLevel AS bWHERE s.ts_code = b.ts_codeAND b.level = 9GROUP BY b.ts_code注意:表别名只在查询执行中使用。与列别名不...
2020-04-27 16:14:07
186
原创 Mysql(七)联结表(JOIN)
1. 创建联结SELECT BasicLevel.ts_code,COUNT(*)FROM StockBasicData,BasicLevelWHERE StockBasicData.ts_code = BasicLevel.ts_codeAND BasicLevel.level = 9GROUP BY BasicLevel.ts_code其中StockBasicDa...
2020-04-27 16:12:26
156
原创 Mysql(六)使用子查询
使用子查询SQL允许将查询语句嵌套在其他查询语句当中,即子查询,子查询是从内层向外层查询。例:SELECT ts_code,COUNT(*)FROM StockBasicDataWHERE ts_code IN (SELECT ts_codeFROM `BasicLevel`WHERE `level` = 9)GROUP BY ts_code...
2020-04-27 16:11:21
145
原创 Mysql(五)分组数据GROUP BY
GROUP BY❑ GROUP BY子句可以包含任意数目的列。这使得能对分组进行嵌套,为数据分组提供更细致的控制。❑ 如果在GROUP BY子句中嵌套了分组,数据将在最后规定的分组上进行汇总。换句话说,在建立分组时,指定的所有列都一起计算(所以不能从个别的列取回数据)。❑ GROUP BY子句中列出的每个列都必须是检索列或有效的表达式(但不能是聚集函数)。如果在SELECT中使用表达式...
2020-04-27 16:10:27
436
原创 Mysql(四)使用数据处理函数
文本处理函数例:SELECT vend_name ,Upper(vend_name) AS vend_name_upcase FROM vendors ORDER BY vend_name DESC; 2. 常用日期函数a. 查询2020-03-16创建的数据例:SELECT * FROM `student` WHERE DATE(creat_time) = '2020-0...
2020-03-27 16:36:42
187
原创 Mysql(三)聚集函数
1. 平均值AVG() SELECT AVG(`level`) AS avg_level FROM `BasicLevel`2. 计数COUNT()a. 使用COUNT(*)计数时,会包含NULL值。b. 使用COUNT(column)计数时,不包含null值。例:SELECT COUNT(*) AS equal_9 FROM `BasicLevel` WHER...
2020-03-27 16:17:08
175
原创 MySql(二)REGEXP使用正则表达式
首先我们说一下REGEXP与LIKE的区别。LIKE类似于等于,而 REGEXP更像包含。点(.)操作符,表示匹配任意一字符。例:SELECT name FROM student WHERE name REGEXP ‘张.’;匹配所有包含张而且后面仍有一任意字符的字符串,比如说张z、张zz、zzz张z。 2. OR 匹配 A. 使用 (|) 符号例:SE...
2020-02-23 14:02:24
428
原创 Mysql(一)LIKE通配符
通配符:用来匹配值的一部分的特殊字符搜索模式(search pattern)由字面值、通配符或两者组合构成的搜索条件.百分号(%)表示任意字符出现任意次数(包含0次)例:SELECT name FROM student WHERE name LIKE ‘张%’; 查找student表中name以张开头的所有记录,比如张张。下划线(_)。下划线与%一样,但下划线只匹配单个字符而不是...
2020-02-23 13:56:29
2756
原创 神奇的const
const允许你告诉编译器以及其他程序员某值应该保持不变,const可用来修饰任何作用域内的对象、函数参数、函数返回类型、成员函数。1. const修饰普通变量。首先看下面几种情况:const int n = 10;int m = 10;const int *p1 = &m;int * const p2 = &m;const int * const p3 = ...
2019-12-18 22:32:17
146
原创 gdb简单应用
l展示源代码(默认展示10行)lfilename:行号/函数名继续按l继续列出按回车可以执行上次操作break行号//打断点b行号if***//条件断点i信息ib//查看断点信息start//开始调试执行一步n单步调试nextc继续执行一直到断点处continues进入函数体...
2019-12-12 15:24:58
141
原创 gcc的简单应用
gcc -e //预处理gcc -s //汇编gcc-c //将代码转换为二进制文件,却不链接gcc -o //生成文件gcc -c test.c // 生成test.ogcc main.c -o app //用main.c 生成app直接使用 gcc main.c 也可以,只不过名称会使用默认名称a.outgcc的前三个命令正好是 esc 也就是键盘...
2019-12-11 15:46:55
265
原创 vim基本操作
隐藏与恢复ctrl + z放到后台fg 恢复上下左右等基本操作hjkl //左 下 上 右w W //一个单词b B // 往回一个单词{} //挑段落gg //段首G //页尾gj //一行太长下一行gk //一行上一行set hlsearch //查找 结果高亮f + 字符// 跳转zt //停在上方zg//停在下放zz //...
2019-12-11 15:45:52
225
原创 linux一些常用命令
linux常用命令ls //list-a //all-d //查看文件本身信息-h //让我们看着舒服的-l //long-i // inode 节点cd //change dir./ 当前目录../上一层目录~/home目录pwd //print woring dirmkdir //参数可以是多个-p // 递归创建文件夹...
2019-12-11 15:41:12
124
原创 设计模式之单件模式
今天我们不举实际的例子了,就直接开始讨论单件模式吧,首先我们要明白什么叫单件模式。单件模式:确保一个类只有一个实例,并提供一个全局访问点。在写程序的过程中,很多时候我们需要用到一个全局对象,很好,当我们需要使用全局对象的时候我们的单件模式就排上用场了,废话不多说,我们直接看代码。class Singleton{public: static Singleton* getSi...
2019-01-08 21:09:47
203
原创 设计模式之装饰者模式
在面对对象编程的时候大家都知道应该多用组合,而非继承。今天我们学习的这个模式便会给我们喜欢继承的小伙伴们一个全新的设计方式。首先大家考虑这么一个问题,我们每天早上起来穿衣服这件事。身为一个程序猿我们一定要学会自己爱惜自己,尤其是到了冬天,我们都喜欢里三层、外三层,生怕冻着自己。就以我自己为例,为了表示对冬天最起码的尊重,首先我会先穿一件秋衣,在秋衣外面我喜欢再套一件毛衣或者卫衣,穿好毛衣后...
2019-01-07 21:12:55
148
原创 STL常见算法
这么长时间过去了,一点点的总算将STL中常见的算法看完了,是时候总结一下了。一、for_each,允许对区间内的元素进行修改二、元素计数difference_type count (InputIterator beg, InputIterator end, const T& value); difference_type count_if (InputIterator beg...
2019-01-03 20:52:36
1445
原创 设计模式之观察者模式
大家应该都看过报纸吧,没看过?那最起码应该听说过吧。好的,那接下来我们分析一下我们的报纸是怎么得到的?有人会说印出来的,我当然知道是印出来的,不打印难道天上掉下来的?为了每天得到报纸,我们则需要向报社订阅,我们只有订阅了,报社才会在以后每天定时派送报纸给我们。接下来我们分析一下,我们订阅的流程:首先我们需要给报社打电话说,我需要订阅你们的报纸。 报社接到你的电话后便会询问你的住址并将...
2018-11-18 17:19:28
203
原创 泛型算法之is_permutation
检测两个区间,在不考虑数序的的情况下的相等性。bool is_permutation (ForwardIterator1 beg1, ForwardIterator1 end1,ForwardIterator2 beg2);bool is_permutation (ForwardIterator1 beg1, ForwardIterator1 end1,ForwardIterator2 b...
2018-11-15 18:00:26
520
原创 泛型算法之equal
校验两个区间是否相等bool equal (InputIterator1 beg, InputIterator1 end,InputIterator2 cmpBeg);bool equal (InputIterator1 beg, InputIterator1 end,InputIterator2 cmpBeg,BinaryPredicate op); 第一种形式判断区间[beg,...
2018-11-14 21:13:17
318
原创 泛型算法之adjacent_find
查找两个连续且相等的元素。ForwardIterator adjacent_find (ForwardIterator beg, ForwardIterator end);adjacent_find (ForwardIterator beg, ForwardIterator end,BinaryPredicate op);第一种形式查找区间内第一对连续两个相等的元素,并返回相同元素的第...
2018-11-14 20:55:45
279
原创 泛型算法之find_first_of
查找某些元素第一次出现的地点InputIterator find_first_of (InputIterator beg, InputIterator end,ForwardIterator searchBeg, ForwardIterator searchEnd);InputIterator find_first_of (InputIterator beg, InputIterator ...
2018-11-14 20:39:01
291
原创 泛型算法之search
查找beg-end区间内与第二个区间完全一致的子区间,返回查找到子区间的第一个元素的位置。ForwardIterator1 search (ForwardIterator1 beg, ForwardIterator1 end,ForwardIterator2 searchBeg, ForwardIterator2 searchEnd);ForwardIterator1search (For...
2018-11-13 21:08:18
215
原创 6. 新的字符串常量值
String str = R”delim(values)delim” //str = values 其中 delim是字符序列,最多十六个字符,不能是双引号,反斜杠还有括号
2018-11-11 18:19:58
160
原创 5. Range-based for(c++11)
一般形式:for( decl : coll){ Statement;}可以将vector vec中的各个元素乘3。std::vector<double> vec;...for ( auto& elem : vec ) { elem *= 3;}以下两种情况表示的是同一种操作:for ( decl : coll ){ ...
2018-11-11 18:18:33
232
原创 4. 一致性初始化({}初始化)
C++11引入了“一致性初始化”概念,意思是面对任何初始化动作,你可以使用相同语法,也就是 使用大括号,下面这样初始化都是可以的。int values[]{ 1,2,3,4,5,6,7,8,9 };vector<char> vec{'a','b' ,'c' ,'d' ,'e' };map<int, string>m1{ { 1,"a" },{ 2,"b" },{ ...
2018-11-11 18:10:24
363
原创 泛型算法之 std::search_n
std::search_n查找区间内连续n个满足某一条件或者等于某一值的情况,并返回满足条件的第一个元素位置。ForwardIterator search_n (ForwardIterator beg, ForwardIterator end,Size count, const T& value);ForwardIterator search_n (ForwardIterator ...
2018-11-11 17:54:46
1476
原创 设计模式之策略模式
在很多情况下,我们一个对象的同一个方法可能在不同的情况下表现形式不同,例如:我们早上如何去上班这个问题,通常情况下可以选择乘公交、坐地铁。可是在某些情况下(比如脑子一热想健身)我们也可以骑自行车或者跑着去公司,此时虽然我们都是要去公司,但是去公司的方式却不同,在这种情况下我们就可以用到我们的策略模式了。记住:有一个去公司的方法可能比坐地铁是去公司的方法更好(有一个比是一个可能更好!)。好了...
2018-11-09 21:40:18
182
原创 泛型算法之 find、find_if 与 find_if_not
InputIterator find (InputIterator beg, InputIterator end, const T& value); InputIterator find_if (InputIterator beg, InputIterator end, UnaryPredicate op); InputIterator find_if_not (InputIterat...
2018-11-07 21:44:12
1722
1
原创 泛型算法之count与count_if
1. difference_type count (InputIterator beg, InputIterator end, const T& value);2. difference_type count_if (InputIterator beg, InputIterator end, UnaryPredicate op);1式返回beg-end区间内等于value的值,2式...
2018-11-06 21:16:55
274
原创 泛型算法之std::for_each
for_each,允许对区间内的元素进行修改,当然transform也可以实现相同的操作,只是transform效率较低,因为transform是通过拷贝函数返回值实现。当然C++11之后for_each变得不再重要,因为range-based for更加直观简单。接下来我们看一下for_each的实现:template<class _InIt, class _Fn> i...
2018-11-06 20:28:12
22929
7
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人