
C++
文章平均质量分 52
wuxiaoxiao2021
这个作者很懒,什么都没留下…
展开
-
【C/C++】内存管理再学习以及指针使用好习惯
文章目录内存分配方式自由存储区VS堆堆VS栈数据结构中堆VS栈内存分配中的栈和堆内存错误内存分配方式堆(heap)栈自由存储区(free store)全局/静态存储区常量存储区自由存储区VS堆问:“free store”和"heap"的区别?答:“malloc/free对应于堆;new/delete对应于自由存储区。问:自由存储区与堆是两块不同的内存区域吗?它们有可能相同吗?答:事实上,我在网上看的很多博客,划分自由存储区与堆的分界线就是new/delete与malloc/fr原创 2021-02-25 09:31:24 · 1008 阅读 · 0 评论 -
【C++】typedef的高级用法---简化复杂函数声明
文章目录常规变量、指针、数组别名函数声明常规变量、指针、数组别名typedef signed char int8_t固定大小的数据类型宏定义,一个字节八位typedef char *pChartypedef char pChar[10]函数声明对于typedef void (*fp) (int);,其中fp代表一个函数指针,可用于简化某些复杂函数的声明。比如对于信号处理signal函数,接受两个参数:需要“被捕获”的特定signal的整数值,类型为int指向用户提供函数的指针,类型为原创 2021-02-24 14:14:52 · 1545 阅读 · 0 评论 -
【C++坑】注释错误,很难发现!
/*。。。*/注释前面和后面都不能添加//。。。注释符号!!!原创 2019-11-25 20:13:59 · 882 阅读 · 2 评论 -
【C++】对象的构造和析构顺序
文章目录程序中存在多个对象来源:https://blog.youkuaiyun.com/qq_37375427/article/details/78736327程序中存在多个对象调用父类的构造函数(下面的例子中无父类)调用Test成员变量(Member类)的构造函数(调用顺序与声明顺序相同:先m_A后m_B)调用类自身的构造函数实例代码:#include <iostream>u...转载 2019-03-22 20:03:47 · 1593 阅读 · 1 评论 -
【C++】智能指针的分析
文章目录来源引入智能指针问题要求解决方案智能指针总结C++11中的智能指针原理、使用、实现智能指针的作用智能指针的使用shared_ptr的使用例程unique_ptr的使用例程weak_ptr的使用例程循环引用智能指针的设计和实现参考:来源https://blog.youkuaiyun.com/qq_37375427/article/details/85228028https://www.cnblog...转载 2019-03-25 09:58:11 · 1602 阅读 · 0 评论 -
【C++】经典问题解析之关于面试中c字符串转换C++字符串经常出错的问题
文章目录来源错误转换正解总结来源https://blog.youkuaiyun.com/qq_37375427/article/details/79130182错误转换#include <iostream>#include <string>using namespace std;int main(){ const char* p = "12345"; ...转载 2019-03-24 20:34:11 · 281 阅读 · 0 评论 -
【C++】经典问题解析三之关于赋值的疑问
文章目录来源问题原因解决总结:来源https://blog.youkuaiyun.com/qq_37375427/article/details/79124030问题第一个疑问是:什么时候需要重载赋值操作符编译器是否提供默认的赋值操作?解答:编译器为每个类默认重载了赋值操作符默认的赋值操作符仅完成了浅拷贝当需要进行深拷贝时,就需要进行赋值操作符的重载赋值操作符与拷贝构造函数有相同的...转载 2019-03-24 20:23:56 · 315 阅读 · 0 评论 -
【C++】函数对象的分析
文章目录来源函数对象引入函数对象总结总结4函数对象取代函数指针的补充解释例子来源https://blog.youkuaiyun.com/qq_37375427/article/details/79122812函数对象引入假设我们需要编写一个函数,实现下面这些功能:-函数可以获得斐波那契数列每一项的值-每调用一次返回一个值-函数可根据需要重复用使用实现上面的几个功能,我们一开始的逻辑或许是这样的...转载 2019-03-24 19:42:38 · 210 阅读 · 0 评论 -
【C++】C++中的字符串类以及C字符串和C++字符串的转换
文章目录字符串与数字的转换使用方法string-->数字数字-->string面试题字符串与数字的转换利用标准库中相关的类字符串流类(sstream)用于string的转换sstream相关头文件istringstream字符串输入流ostringstram字符串输出流使用方法string–>数字istringstream iss("123.45");...转载 2019-03-24 19:10:36 · 1621 阅读 · 0 评论 -
【C++】cin输入istream流使用总结
PListHead CreatList(){ PListHead pHead = new ListNode; PCurNode pCurNode = pHead; int val = 0; cout &amp;amp;amp;amp;lt;&amp;amp;amp;amp;lt; &amp;amp;amp;quot;Input data(Enter to quit) to creat List:&amp;amp;amp;quot; &原创 2019-02-17 10:20:37 · 2652 阅读 · 0 评论 -
【C++】C++ struct以及typedef的应用以及union
https://www.cnblogs.com/zhengfa-af/p/8144786.html转载 2019-02-17 09:22:28 · 1151 阅读 · 0 评论 -
虚基类
转自:https://blog.youkuaiyun.com/a799581229/article/details/52414664有一个类A,A中有个成员 iB和C都继承了AD又同时继承了B和C那么D中的i是来自于B还是来自于C呢?这时候就要用到虚基类(虚继承)此时B和C继承的是同一个对象A,而不是2个A这样i都是来自于一个对象#include<iostream>using n...转载 2019-01-05 19:14:20 · 1873 阅读 · 0 评论 -
【C++】C++多态性解析(调用函数)
测试程序:#include&amp;amp;amp;lt;iostream&amp;amp;amp;gt;using namespace std;class Base//抽象类{public: void fun() { cout &amp;amp;amp;lt;&amp;amp;amp;lt; &amp;amp;quot;调用基类普通成员函数&amp;amp;quot; &amp原创 2019-01-05 18:51:30 · 683 阅读 · 0 评论 -
【C++】逗号表达式的分析(二维数组初始化时易犯的错误)
文章目录来源逗号表达式总结来源https://blog.youkuaiyun.com/qq_37375427/article/details/79191078逗号表达式逗号操作符,可以构成逗号表达式逗号表达式用于将多个子表达式连接为一个表达式逗号表达式的值为最后一个子表达式的值逗号表达式的前N-1个表达式的值可以没有返回值逗号表达式按照从左向右的顺序计算每个表达式的值exp1,exp2,…...转载 2019-03-25 18:50:55 · 926 阅读 · 0 评论 -
【C++】vector拷贝使用总结(深复制、浅复制)
文章目录利用赋值操作符(浅复制)利用``swap()``函数(移除复制)利用``assign()``函数(深复制)利用初始化拷贝(深复制)利用赋值操作符(浅复制)vector<int> array{3,5,2,6,4};vector<int> outArray = array;利用swap()函数(移除复制)会清空原vector数组vector<int&...原创 2019-03-26 09:12:06 · 107751 阅读 · 8 评论 -
【笔试】C++实现计算在网格中从原点到特定点的最短路径长度(BFS)
文章目录题目描述解题思路C++实现题目描述[[1,1,0,1], [1,0,1,0], [1,1,1,1], [1,0,1,1]] 1 表示可以经过某个位置,0表示不可以经过,求解从 (0, 0) 位置到 (tr, tc) 位置的最短路径长度。 求解从(0, 0) 位置到 (tr, tc) 位置的最短路径长度。解题思路每个点需要保存x坐标,y坐标以及长度,所以必须要用一个...原创 2019-03-29 16:38:43 · 2521 阅读 · 1 评论 -
【C++】利用chrono统计毫秒,微妙,纳秒运行时间
void CalRunTime() { auto t1=std::chrono::steady_clock::now(); //run code auto t2=std::chrono::steady_clock::now(); //秒 double dr_s=std::chrono::duration<double>(t2-t1).c...原创 2019-08-06 11:03:49 · 10339 阅读 · 0 评论 -
类的分类
具体类 将具体类作为基类一般无意义,是线程处理中多线程类的理想候选者(简单) 抽象类 可以提供多个纯虚函数(真的需要,有意义),但是派生类要实现其定义 接口类 接口:类用户可用的数据成员和成员函数(即public数据和函数)组成了该类的接口。 接口类:用于修改或增强另一个类或类集合的接口,可以调整和完善接口,使其更易用。 接口类例子:更改函数或数据成员名;更改数据类型、返回类型或参数...原创 2018-12-26 11:31:58 · 443 阅读 · 0 评论 -
C++重载双目操作符(流操作符、算术运算符、比较运算符)
重载双目操作符解决方案如果是重载双目操作符(即为类的成员函数),就只要设置一个参数作为右侧运算量,而左侧运算量就是对象本身。note:C++规定操作符重载默认为全局性质的,即使定义在类内部,也不能访问类的私有成员,只能定义为友元函数或者通过其他方式访问私有成员。流操作符:<< >>,将类内部的私有成员进行输入输出使用常规成员函数对于>>或者<&...原创 2018-12-26 11:31:50 · 1282 阅读 · 0 评论 -
【C++】动态链接库dll及静态链接库lib制作及使用教程
文章目录https://edu.51cto.com/center/course/lesson/index?id=145555转载 2019-06-20 18:48:49 · 1371 阅读 · 0 评论 -
【C++】全局变量的声明与定义
文章目录编译单元(模块)声明与定义extern作用静态全局变量(static)全局常量(const)编译单元(模块)在VC或VS上编写完代码,点击编译按钮准备生成exe文件时,编译器做了两步工作:将每个.cpp(.c)和相应的.h文件编译成obj文件;将工程中所有的obj文件进行LINK,生成最终.exe文件。那么,错误可能在两个地方产生:编译时的错误,这个主要是语法错误;链接...转载 2019-06-14 20:43:00 · 9542 阅读 · 0 评论 -
【C++异常】try cach
https://www.cnblogs.com/MrYuan/p/4800257.html转载 2019-04-16 21:18:36 · 1291 阅读 · 0 评论 -
【剑指offer】单例模式C++实现
文章目录来源描述1.单线程解法2.多线程+加锁3.const static型实例4.在get函数中创建并返回static临时实例的引用5.最终方案,最简&显式控制实例销毁来源https://blog.youkuaiyun.com/huhaijing/article/details/51756225描述实现Singleton模式1.单线程解法在多线程中,仍会创建多个实例!!!#includ...转载 2019-03-29 21:41:15 · 641 阅读 · 0 评论 -
【C++】C++的二阶构造模式(避免构造bug)
文章目录来源C++bug来源构造函数半成品对象利用二阶构造解决代码示例说明总结来源https://blog.youkuaiyun.com/qq_37375427/article/details/78797953C++bug来源野指针对象构造未成功(在构造函数中出现了异常)构造函数只提供自动初始化成员变量的机会不能保证初始化逻辑一定成功执行return语句后构造函数立即结束结论:构...转载 2019-03-22 22:04:27 · 529 阅读 · 0 评论 -
【C++】this指针与成员函数
文章目录来源对象的构成代码示例结论来源https://blog.youkuaiyun.com/qq_37375427/article/details/78739564对象的构成从面向对象的角度属性(成员变量)+ 方法(成员函数)从程序运行的角度数据+函数数据:栈、堆、全局数据区函数:只能代码段代码示例#include <iostream>using namespace ...转载 2019-03-22 21:31:20 · 679 阅读 · 3 评论 -
char* 相关
使用方式char* str = &amp;amp;quot;Hello World!&amp;amp;quot;此方法利用字符串常量赋值,只能对其读,不能进行写入,在堆区自动分配内存和释放利用new,delete,和string在栈区为其赋值char *str = nullptr;str = new char[24];string tmp = &amp;amp;quot;Hello World!&amp;amp;quot;;原创 2018-12-27 20:40:37 · 277 阅读 · 0 评论 -
利用C++获取某一文件夹下的所有文件名,并获取不带后缀的文件名字
来源:https://www.cnblogs.com/fnlingnzb-learner/p/6424563.html那么到底如何查找文件呢?我们需要一个结构体和几个大家可能不太熟悉的函数。这些函数和结构体在<io.h>的头文件中,结构体为struct _finddata_t ,函数为_findfirst、_findnext和_fineclose。_finddata_t 结构...转载 2018-11-12 22:14:15 · 3026 阅读 · 0 评论 -
C++容器
vectorvector<int> v;v.size(); v.max_size(); v.resize(); v.capacity(); v.empty(); v.shrink_to_fit();v.assign(); v.push_back(); v.pop_back(); v.insert(); v.erase(); v.swap(); ...原创 2018-08-11 19:50:51 · 121 阅读 · 0 评论 -
C++explicit的理解
是用来干什么的? 一个参数的构造函数 或 除了第一个参数外其余参数都有默认值的构造函数 这两种构造函数和其他构造函数有什么不同?什么情况下不同点会显现出来? 什么是隐式转换、显式转换?类的隐式转换?隐式转换说白了就是在转换时不给系统提示具体的显示模型,让其自动转换,但是要记住一条编译器一般只支持自下而上的类型转换,例如int 转 floatint a =4; flo...转载 2018-08-14 20:30:47 · 1702 阅读 · 1 评论 -
C++为什么要使用静态成员变量和静态成员函数,以及要在类内声明和在类外定义(初始化)
相关文章1.静态成员变量和静态成员函数诞生顺序,以及为什么诞生(使用场景)?2.有无this指针?3.和类以及对象的关系?4.如何定义以及访问的方式与普通成员变量和普通成员函数的区别?5.是怎么分配内存的?当调用一个对象的非静态成员函数时,系统会把该对象的起始地址赋给成员函数的this指针。而静态成员函数并不属于某一对象(所有对象共有,没有this指针,不能访问本类中非静态成员,有点...转载 2018-07-30 17:10:33 · 11859 阅读 · 1 评论 -
Mat_类模板小计
1.Mat_类的特点、应用场合?2.引用和指针的转化(引用的&和取址&的区别)?3.怎么通过引用让两个变量指向同一块地址?4.Mat_类访问矩阵元素的快捷方式? Mat_类一般应用于矩阵(matrix)的运算。Mat_类继承自Mat类,对数据类型更加灵活,可定义为Mat_<_Tp>的矩阵形式 template<typename ...原创 2018-07-25 21:26:24 · 860 阅读 · 0 评论 -
#pragma once与#ifndef #define ...#endif的区别
1.使用哪种好?2.想同时使用两种,顺序怎么排? #pragma once用来防止某个头文件被多次include,特点是与编译系统有关,移植性差一点,不过现在基本所有的编译器都有这个定义。 #ifndef,#define,#endif用来防止某个宏被多次定义。特点是与C++语言相关,通过宏定义避免文件被多次编译,如果要跨平台最好使用此方式。(依赖于宏名称不能冲突),一般宏使用...原创 2018-07-25 20:17:28 · 247 阅读 · 0 评论 -
debug版的坑和构造函数中犯的错误
1.出错原因,指针的使用还是不熟练2.在构造函数中瞎判断指针是否为空在构造函数中犯的错误导致在ubuntu下G++编译器出错 CBeamCore::CBeamCore(Mat img) { m_matSrc = img.clone(); m_nFlag = img.channels() * 8; m_nHeight = img.rows; m_nWidth = im...原创 2018-07-18 15:41:44 · 147 阅读 · 0 评论 -
C++读写文件相关(包括一行行读取数据,读取每一行数据的第一个数)的函数
1.setprecision()函数的使用及头文件?2.利用getline()怎么读取一行数据,换行符是否读入了?3.怎么使用串流实现对string字符串的输入输出? 写数据到txt文件//其中的setprecision()函数在头文件iomanip 中void WriteBeamCoreToFile(string fileName, vector<Point2f&g...原创 2018-07-23 20:22:23 · 33192 阅读 · 0 评论 -
利用opencv读取某一路径下的若干张图片函数ReadMulMatImgs()
1.流程?2.使用到的opencv函数是哪几个? 函数比较简单,直接贴代码:bool ReadMulMatImgs(int nums, string imgPath, vector<cv::Mat>& imgs) { cv::Mat img; std::vector<cv::String> imgFiles; cv::glob(im...原创 2018-07-23 20:17:37 · 590 阅读 · 0 评论 -
Qt5利用qcharts画图表,Mat与QImage互转,利用label显示图片等相关
1.怎么理解能用label标签显示和设置图片这件事情?2.设置可滚动图片的思路?需要借助那个类?3.Mat类型和QImage类型互相转化函数的思路,主要使用Mat转QImage?4.怎么获取Mat类型图片的指针?利用label标签和scrollArea滚动区域显示Mat类型图片几个图标相关成员变量: ChartView *chartView; QChart ...原创 2018-07-23 20:11:08 · 2380 阅读 · 0 评论 -
利用指针访问opencv Mat类型的矩阵,以及求椭圆方程的函数
1. 能利用数组初始化Mat类型矩阵吗?2.为什么要用数组初始化Mat矩阵,以及什么情况下使用,使用数组初始化Mat矩阵的条件是什么?3.怎么利用指针访问Mat矩阵,是怎么进行的?答:是为了使用方便,直接利用数组索引对矩阵赋值,感觉也可以用Mat_类,访问和赋值也方便新建一个Mat,求椭圆方程函数 f(x,y)=Ax2+Bxy+Cy2+Dx+Ey+F:cv::Mat CEll...原创 2018-07-16 20:29:51 · 1758 阅读 · 1 评论 -
opencv Mat类型和BYTE*指针类型互转
1.Mat转BYTE*是利用Mat矩阵的什么机制,Mat类的哪个成员变量?2. BYTE*转Mat利用的机制是一样的吗?1.Mat转BYTE*函数void MatToByte(Mat srcImg, BYTE*& pImg){ int nFlag = srcImg.channels() * 8;//一个像素的bits int nHeight = srcImg.rows;...原创 2018-07-16 20:23:53 · 15344 阅读 · 7 评论 -
C++函数指针、函数对象与C++11 function对象对比分析
函数指针怎么声明?能用来做什么?什么时候用? 函数指针变量名称一定要和函数名字一样吗?一个函数只能定义一个函数指针吗? 给函数指针变量初始化,获取函数的地址时,有几种方式?可以不加取址&符号吗?想要传入另外一个函数,一定要提前定义吗? 函数对象的实质是什么?怎么理解这个东西? 怎么调用函数对象? 函数对象和函数指针的比较? C...转载 2018-08-11 21:18:30 · 6626 阅读 · 2 评论 -
while和for循环的巧用
用到了从后往前的思想? 什么时候用while?(当不知道具体要循环多少次时) 利用while判断条件是否满足时,要学会随时更新条件? 利用什么实现二分法查找?例一://无序向量顺序查找算法,返回位置(存在) 或 lo-1(不存在)template <typename T>Rank Vector<T>::find(T const& e, Rank ...原创 2018-08-12 17:13:13 · 973 阅读 · 0 评论