
C++
听听那冷雨~
猿
展开
-
C++中使用Windows平台API获取目录下特定类型文件及路径
源码:#include <iostream>#include <io.h>#include <vector>#include <string>void getFiles1(std::string path, std::vector<std::string>& files){ //文件句柄 //long hFile = 0; //win7 intptr_t hFile = 0; //win10 //原创 2020-11-09 21:59:44 · 820 阅读 · 0 评论 -
STL失效
https://blog.youkuaiyun.com/y1196645376/article/details/52938474在使用STL各类容器的时候,有时会出现迭代器失效,引用(指针)失效等情况的而发生,即使看似你的操作都是合法的情况下;首先我们把以上的问题分成两类:容器的迭代器为什么会失效? 容器元素的引用(指针)为什么会失效?问题: 容器的迭代器为什么会失效?即容器的元素在容器内部搬家了;我们可以把容器看做是一个小镇,有一个个的房子;而元素就是相当于住在房子里面的人; ...原创 2020-09-04 10:26:01 · 477 阅读 · 0 评论 -
C++位运算之|,&
原创 2020-03-18 16:12:27 · 168 阅读 · 0 评论 -
Lambda 表达式
无参数无返回值无捕获Labmda表达式lambda表达式是C++11中引入的一项新技术,利用lambda表达式可以编写内嵌的匿名函数,用以替换独立函数或者函数对象,并且使代码更可读。从广义上说,lamdba表达式产生的是函数对象。在()中加入返回值,在->后加入返回值如果需要参数,那么就要像函数那样,放在圆括号里面,如果有返回值,返回类型要放在->后面,即拖尾返回类型,...翻译 2020-03-18 10:52:01 · 302 阅读 · 0 评论 -
C++重要基础小知识
关键字:1. mutalbe:被mutable修饰的变量即使在一个const函数中,也可以发生改变。有些时候,需要在const函数中修改一些和类状态无关的数据成员,例如统计计数,那么这个数据成员应该被mutalble修饰。与const关键字相对。未完待续!!!...原创 2020-01-09 16:26:43 · 174 阅读 · 0 评论 -
C++常见小问题
unsigned:包括0和大于0的数;原创 2019-02-06 10:57:09 · 269 阅读 · 0 评论 -
C++ 自增++i和i++效率区别
C++中i++和++i效率比较:1. ++i是i = i+1;表达式的值就是i本身;2. i++也是i = i + 1;但表达式的值是加1前的副本,由于要先保存副本,因此效率要低一些;3. 对于C++内置类型而言,大部分编译器会做优化,因为效率没什么区别;但是在自定义类型上,就未必有优化,++i效率会高些;...原创 2018-05-05 19:11:10 · 1136 阅读 · 0 评论 -
打破shared_ptr智能指针使用时可能导致的环形引用
使用智能指针必须包含头文件:程序举例:无法释放的原因是因为出现了环形互引用:为了解决这个问题,可以采用weak_ptr来隔断交叉引用中的回路;所谓weak_ptr,是一种弱引用,表示只是对某个对象的一个引用和使用,而不做管理工作;改进方案:将一个类中的shard_ptr改为weak_ptr...原创 2018-04-26 17:50:28 · 1088 阅读 · 0 评论 -
递归的理解(二)
迭代的是人,递归的是神;理解递归:在初学递归的时候, 看到一个递归实现,我们总是难免陷入不停的回溯验证之中, 因为回溯就像反过来思考迭代, 这是我们习惯的思维方式, 但是实际上递归不需要这样来验证.我们怎么判断这个阶乘的递归计算是否是正确的呢? 先别说测试, 我说我们读代码的时候怎么判断呢?思考方式1:回溯的思考方式是这么验证的, 比如当n = 4时, 那么factoria(4)等于4 *fact...原创 2018-04-06 19:52:28 · 369 阅读 · 0 评论 -
C++关键字之_Explicit
C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显式的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式). explicit关键字只对有一个参数的类构造函数有效, 如果类构造函数参数大于或等于两个时, 是不会产生隐式转换的, 所以expli...原创 2018-04-12 00:45:40 · 194 阅读 · 0 评论 -
C++ const_cast
1. const_cast主要用于将const变量改变属性为非const,便于临时对其值进行改变;2. 但是,尽量应该不要用,比如上面函数,函数声明里面已经时const修饰,reviewer从const这个关键字就以为内部不会被修改,但是,在函数内部又对其进行了修改,这是一种非常不好的编码风格;...原创 2018-03-26 21:50:24 · 221 阅读 · 0 评论 -
在C++中如何输入带空格的字符串
如何输入一个带空格的字符串在C++中需要特殊处理;、cin标准输入字符串在遇到空格时候将会被截断;getline(std::cin, std::string)在输入回车符号时才会被截断...原创 2018-03-29 21:20:51 · 2719 阅读 · 0 评论 -
递归的理解(一)
递归(英语:Recursion),又译为递回,在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。递归一词还较常用于描述以自相似方法重复事物的过程。例如,当两面镜子相互之间近似平行时,镜中嵌套的图像是以无限递归的形式出现的。也可以理解为自我复制的过程。语言例子:从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?「从前有座山,山里有座庙,庙里有个老和尚,正在...翻译 2018-03-18 11:38:35 · 855 阅读 · 0 评论 -
Static关键字用法归纳
面向过程中的static:1. 静态全局变量:2. 静态局部变量: 有时候我们需要在两次调用之间对变量的值进行保存;通常的想法是定义一个全局变量来实现,但这样一来,变量已经不属于函数本身了,不再仅受函数的控制,给程序的维护带来困难;静态局部变量正好可以解决这个问题;静态局部变量保存在全局数据区,而不是保存在栈中,每次的值保持到下一次调用,直到下一次赋新值;3. 静态函数:(1) 在函数的返...原创 2018-03-18 11:10:52 · 341 阅读 · 0 评论