C++
rrr2
这个作者很懒,什么都没留下…
展开
-
快速从Github下载代码
首先假设你你已经有了码云账户,没有的童鞋可以在这里注册:https://gitee.com/。你需要有个github账户,没有的童鞋可以在这里注册:https://github.com/join。在码云导入github代码库。(如若要下载github中其他人的代码,你需要先把这个项目Fork一下)...原创 2021-01-26 13:34:10 · 205 阅读 · 0 评论 -
float、int、 byte、 short 类型数据的转换问题
1.查看 float 型数据在内存中的二进制存储形式#include<iostream>#include<stdio.h>#define uchar unsigned charusing namespace std;void binary_print(uchar c){ for (int i = 0; i < 8; ++i) { if ((c << i) & 0x80) cout <&原创 2020-12-28 21:54:03 · 2992 阅读 · 0 评论 -
C/C++基本数据类型 所占字节数 在内存中存储方式 内存 指针
编程的本质其实就是操控数据,数据存放在内存中。因此操作数据,实际就是操作内存,而定位到需要操作的内存就需要知道内存地址,即为指针。了解内存模型可以把指针用得炉火纯青,各种对内存基本单元——字节(byte) 随意操作1 内存1.1 内存、内存地址、地址空间1.1.1 内存计算机的内存是一块用于存储数据的空间,由一系列连续的存储单元组成,每个存储单元为1bit, 1个 bit 只能表示两个状态,所以大佬们规定 8个 bit 为一组,命名为 byte。1.1.2 内存地址将 byte 作为内存寻.原创 2020-12-26 21:26:55 · 3801 阅读 · 0 评论 -
C++输出数据到txt文件 fprintf
#include <stdio.h>#include <stdlib.h>int main(){char money= ‘s’;char a =‘w’;char b =‘e’;char day=‘t’;FILE *fp = fopen("a.txt", "a+");//打开并在指定地点创建只写文件。fprintf(fp,"%c,%c,%c,%c,%c\n",money,a,b,b,day);//使用fprintf 将输出端口变更为 文档 fclose(fp原创 2020-12-25 14:45:23 · 3008 阅读 · 0 评论 -
fwrite()
C 库函数声明size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)把 ptr 所指向的数组中的数据写入到给定流 stream 中。参数ptr -- 这是指向要被写入的元素数组的指针。size -- 这是要被写入的每个元素的大小,以字节为单位。nmemb -- 这是元素的个数,每个元素的大小为 size 字节。stream -- 这是指向 FILE 对象的指针,该 FILE 对象指定了一个输出流。返回值原创 2020-12-22 00:15:53 · 202 阅读 · 0 评论 -
win10无法安装.NET Framework 3.5服务
1 关闭windows功能先把net4.7高级服务关闭2 下载netfx3下载 microsoft-windows-netfx3-ondemand-package.cab放在 c:windows打开管理员命令行dism.exe /online /add-package /packagepath:C:\Windows\microsoft-windows-netfx3-ondemand-package.cab3 启用windows功能把netfx4.7开启4 安装完重启原创 2020-09-24 21:45:36 · 785 阅读 · 0 评论 -
memcpy 函数
memcpy(内存拷贝函数)c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始 拷贝 num个字节到目标dest所指的内存地址的起始位置中。void* memcpy(void* destination, const void* source, size_t num);void* dest :目标内存const void* src 源内存size_t num 字节个数struct { char name[40]; int age;} p原创 2020-09-22 23:05:54 · 304 阅读 · 0 评论 -
Qt操作至少需要一个处于启用状态的有效资料档案库
添加或删除组件在卸载Qt的时候可以选择删除添加组件,但是一般会显示“此操作至少需要一个处于启用状态的有效资料档案库”,Qt的镜像站点合集(http://download.qt.io/static/mirrorlist/)。在“设置”的“存储库”添加“临时存储库”,输入链接“http://mirrors.ustc.edu.cn/qtproject/online/qtsdkrepository/windows_x86/root/qt/”,测试成功后即可进行添加删除组件。失败的话输入这个链接“http://m原创 2020-08-26 17:23:39 · 4467 阅读 · 3 评论 -
Application failed to start because it could not find or load the QT platform plugin “windows”
Application failed to start because it could not find or load the QT platform plugin “windows”用VS 2015进行QT程序开发时,在vs界面中调试编译程序时没有问题,但是进入到生成的exe文件夹下运行exe文件是却总是跳出一个提示框:Application failed to start because it could not find or load the QT platform plugin “wind原创 2020-08-22 22:36:15 · 158 阅读 · 0 评论 -
在VS2015中安装配置Qt环境
1.QT下载下载网址:https://download.qt.io/archive/qt/https://download.qt.io/archive/qt/5.9/5.9.1/(Qt5.7 开始支持 VS2015)Qt5跟Qt4差异较大,没有特殊要求建议使用Qt5系列的进行开发。https://blog.csdn.net/lhl1124281072/article/details/80023787...转载 2020-08-19 22:51:26 · 1965 阅读 · 0 评论 -
枚举类型enum详解
概述enum是C语言中的一个关键字,enum叫枚举数据类型,枚举数据类型描述的是一组整型值的集合(这句话其实不太妥当),因为枚举类型是一种基本数据类型,而不是一种构造类型,它不能再分解成什么基本类型。好像可以把int型的数据直接赋值给enum变量,实际上是不行的,需要进行强制类型转换,C语言提供了一种称为“枚举”的类型,其中一个枚举常量的占的字节数为4个字节,恰好和int类型的变量占的字节数相同,假设把这些枚举常量说明为整型,字符型或其他类型显然是不妥当的枚举型是预处理指令#define的替代,枚举和原创 2020-06-14 10:54:04 · 9456 阅读 · 0 评论 -
typedef用法详解 #define
一个关键字,用于为一种类型引入一个新的名字。并不会分配内存。作用1 创建别名,易于记忆且意义明确为现有类型创建别名,给变量定义一个易于记忆且意义明确的新名字。typedef unsigned int UINT2 定义与平台无关的类型typedef long double REAL;当跨平台时,只要改下 typedef 本身就行,不用对其他源码做任何修改。标准库就广泛使用了这个技巧,比如size_t。另外,因为typedef是定义了一种类型的新别名,不是简单的字符串替换,所以它比宏来得稳原创 2020-06-14 10:42:02 · 395 阅读 · 0 评论 -
C 文件操作相关类FILE 函数fopen fgets feof EOF
C 标准库 - <stdio.h>typedef struct{short level; // 缓冲区“满”或“空”的程度unsigned flags; // 文件状态标志char fd; // 文件描述符unsigned char hold; // 如缓冲区无内容不读取字符short bsize; // 缓冲区的大小unsigned char *buffer; // 数据缓冲区的原创 2020-06-11 23:11:26 · 1185 阅读 · 1 评论 -
void*
void 被翻译为"无类型",相应的void * 为"无类型指针"void当函数不需要返回值值时,必须使用void限定,这就是我们所说的第一种情况。例如:void func(int a,char *b)。当函数不允许接受参数时,必须使用void限定,这就是我们所说的第二种情况。例如:int func(void)。void*void 指针可以指向任意类型的数据,就是说可以用任意类型的指针对 void 指针对 void 指针赋值。注: 只表示地址不能取对象的值void* p;int a=1;原创 2020-06-11 21:05:28 · 173 阅读 · 0 评论 -
size_t
size_t的取值与机器相关无符号类型,它被设计得足够大以便能够内存中任意对象的大小。在cstddef头文件中定义了size_t类型,这个文件是C标准库stddef.h头文件的C++版本。size_t是一些C/C++标准在cstddef/stddef.h中定义的size_t的真实类型与操作系统有关,在32位架构中被普遍定义为:typedef unsigned int size_t;而在64位架构中被定义为:typedef unsigned long size_t;size_t在32位架原创 2020-06-09 22:56:08 · 628 阅读 · 0 评论 -
在windows下配置pthreadVC2 pthreadGC2
配置头文件及静态链接库这里有多种方式,我们这里只提到我们用到的一种,总之目的是让我们建立的工程能够找到对应的头文件、静态库文件,以及运行时程序能够找到动态链接库文件。这里,我们直接把头文件拷贝到Visual Studio的默认路径的头文件中(也可在项目属性中设置include和lib ),即把include文件夹中的三个文件直接拷贝到Visual Studio安装目录下VC->include文件夹下,例如我将include中文件拷贝到的位置是E:\Program Files\Microsoft原创 2020-06-02 21:01:59 · 2094 阅读 · 0 评论 -
Darknet的yolov3.weights文件转换成tensorflow的ckpt或者pb文件
https://github.com/mystic123/tensorflow-yolo-v3python convert_weights_pb.py --class_names mydata.names --data_format NHWC --spp --weights_file H:/code/darknet-master/darknet-master/build/darknet/x64/backup/yolov3-spp_2000.weights生成frozen_darknet_yolov3_m原创 2020-05-30 23:27:26 · 1789 阅读 · 0 评论 -
线程与进程
引言CPU,它承担了所有的计算任务操作系统是计算机的管理者,它负责任务的调度、资源的分配和管理,统领整个计算机硬件;应用程序侧是具有某种功能的程序,程序是运行于操作系统之上的。任务(task)是最抽象的,是一个一般性的术语,指由软件完成的一个活动。一个任务既可以是一个进程,也可以是一个线程。简而言之,它指的是一系列共同达到某一目的的操作。例如,读取数据并将数据放入内存中。这个任务可以作为一个进程来实现,也可以作为一个线程(或作为一个中断任务)来实现。进程进程是一个具有一定独立功能的程序在一个数据原创 2020-05-16 11:52:18 · 176 阅读 · 0 评论 -
内存分页
操作系统的每个进程都拥有自己的虚拟地址空间,对于这个32位操作系统,虚拟内存空间大小为4G。现代操作系统都使用分页来管理内存,把4G分成每一页为2^12 = 4K大小的页,一共有1M个的页(虚拟页VP,VirtualPage)。每一个虚拟页映射到物理内存空间的一个页——物理内存地址空间也划分4K大小的页(物理页PP,PhysicalPage)。这个映射关系的数据结构称为页表。当进程的虚拟页找不到可用的物理页的时候操作系统会执行一个页错误机制,进行物理页和磁盘页的置换。下面进行详细介绍。1.页表页表是将虚原创 2020-05-12 20:59:52 · 407 阅读 · 0 评论 -
char * ,char ** ,char a[ ] ,char *a[] 的区别
在C语言中字符串常量的本质表示其实是一个地址,这是许多初学者比较难理解的问题。。。 举例: char *s ; s = "China"; 为什么可以把一个字符串赋给一个指针变量。。 这不是类型不一致吗??? 这就是上面提到的关键 。。 C语言中编译器会给字符串常量分配地址,如果 "China", 存储在内存中的 0x3000 0x3001 0x3002 0x3003 0x3004 0x3005 .转载 2020-05-10 08:43:06 · 418 阅读 · 0 评论 -
extern “C”的作用
extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言(而不是C++)的方式进行编译。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般只包括函数名。这个功能十分有用处,因为在C++出现以前,很多代码都是C语言写的,而且很底层的库也是C语言写的,为了更好的支持原来的C代码和已经写好的C原创 2020-05-08 20:47:00 · 143 阅读 · 0 评论 -
重装vs后,cuda重新配置
无cuda项目 解决办法https://blog.csdn.net/u010724874/article/details/89578558卸载cudahttps://blog.csdn.net/weixin_42631693/article/details/103795371下载cuda9 cudnn7.6https://developer.nvidia.com/cuda-90-down...原创 2020-05-02 18:16:46 · 1717 阅读 · 0 评论 -
OpenCV3.3+VS2015配置 x64 debug release
重装vs后,配置新建空项目opencv_world330d.libopencv_world330.lib在windows文件夹下加入OpenCV动态链接库把E:\OpenCV\opencv\build\x64\vc14\bin目录下的dll文件导入C:\Windows\SysWOW64#include <opencv2/opencv.hpp>#include &l...原创 2020-05-02 18:07:01 · 286 阅读 · 0 评论 -
__attribute__ 机制
__attribute __ 其实是个编译器指令,告诉编译器声明的特性,或者让编译器进行更多的错误检查和高级优化。attribute 可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。__attribute __ 是GCC的特性,LLVM借鉴过来,又对其进行了扩展。语法格式为:__attr...原创 2020-04-06 16:08:18 · 210 阅读 · 0 评论 -
print格式控制,输出不同数据类型 进制
printf的格式控制的完整格式:% - 0 m.n l或h 格式字符①%:表示格式说明的起始符号,不可缺少。②-:有-表示左对齐输出,如省略表示右对齐输出。③0:有0表示指定空位填0,如省略表示指定空位不填。④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n...转载 2020-04-06 11:32:51 · 1059 阅读 · 0 评论 -
计算机丢失vcomp140.dll 正确做法!
错误做法如下!!将解压后的vcomp140.dll文件复制到C:\Windows\SysWOW64目录和C:\Windows\System32目录,然后打开cmd,以管理员身份运行,输入“regsvr32 vcomp140.dll"(没有引号),回车14代表vc++2015正确做法控制面板卸载程序右键2015更改修复如果没有的,重新下载vc++201564位VC++运行库下载...原创 2020-03-19 22:00:32 · 67117 阅读 · 10 评论 -
_builtin_popcount()计算二进制中多少个1
Q:计算二进制中1 的个数如数字13,二进制表示是1101 (前面28个0没写出来),有3个‘1’,所以popcount(13)=3。方法:1二进制遍历时间复杂度是O(n)2位移算法通过清除 u 最低的 bit 1 ,直至 u 为 0 ,每次都为计数器加 1 。时间复杂度为 O (m) , m 为 bit 1 的个数。eg11的二进制是:0000101111-1=10的二进制:...原创 2020-03-07 10:45:39 · 509 阅读 · 0 评论 -
C/C++ python float、double为什么浮点计算不准确? 表示范围及精度
>>> 1.2 - 1.00.19999999999999996根本原因:存在(用二进制存储时)“不可表示”,如0.1,0.2和0.01计算机会把你心里想的十进制小数转换为二进制小数,然后在内存中存储二进制小数CPython 中的 float 类型使用C语言的 double 类型进行存储。 float 对象的值是以固定的精度(通常为 53 位)存储的二进制浮点数,由于...原创 2020-03-05 10:34:00 · 5189 阅读 · 0 评论 -
C++获取变量类型并输出
头文件:#include<typeinfo>使用typeid(data).name()#include<iostream>#include<typeinfo>using namespace std;int main(){ bool a; char b; short c; int d; long e; ...原创 2020-03-03 11:21:29 · 682 阅读 · 0 评论 -
读写xml和yml文件 opencv mat vector
有时候我们处理完图像后需要保存一下数据到文件上,以供下一步的处理。一个比较广泛的需求场景就是:我们对一幅图像进行特征提取之后,需要把特征点信息保存到文件上,以供后面的机器学习分类操作。那么如果遇到这样的场景,我们有什么好方法,搭建这类的小型数据库文件?更好的办法是使用xml和yml,因为他们更具有可读性,简直就是为保存数据结构而生的好方法!OpenCV提供了很好用的读写xml/yml的类,...原创 2018-05-13 12:11:06 · 2572 阅读 · 0 评论 -
C++ STL 迭代器 容器 算法
STL介绍STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++ Standard Library)中。 该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软件的可复用性。 为了具有足够通用性,STL主要依赖于模板而不...原创 2018-05-12 12:29:10 · 519 阅读 · 1 评论 -
模板类与类模板、函数模板与模板函数等的区别
C++中概念区分:函数指针——指针函数 数组指针——指针数组 类模板——模板类 函数模板——模板函数 1.函数指针——指针函数函数指针的重点是指针。表示的是一个指针,它指向的是一个函数,例子: int (*pf)(); 指针函数的重点是函数。表示的是一个函数,它的返回值是指针。例子: int* fun(); 2.数组指针——指针数组...原创 2018-05-11 21:47:26 · 317 阅读 · 0 评论 -
C++ vector的使用方法
在c++中,vector是一个十分有用的容器。作用:它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。vector在C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。特别注意:使用vector需要注意以下几点:1、如果你要表示的向量长度较长(需要为向量内部保存很多数),容易导...原创 2018-05-11 19:27:24 · 294 阅读 · 0 评论 -
visual assist XVA_X_Setup2074 安装破解
之前忘记替换dll文件,一直没有破解 1. install VA_X_Setup2074.exe 2. copy and replace the VA_X.dll 地址:C:\Users\jk\AppData\Local\Microsoft\VisualStudio\14.0\Extensions\ztj0emve.lwx...原创 2018-04-26 10:35:31 · 1147 阅读 · 0 评论 -
VS 编译报错 POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name:
报错:The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _kbhit. step: 菜单栏下“项目”->属性->c/c++->预处理器->预处理器定义->编辑->输入:_CRT_NONSTDC_NO_DEPREC...原创 2018-04-24 21:56:10 · 5943 阅读 · 1 评论 -
排序算法
排序算法汇总及c++代码原创 2018-04-03 15:46:49 · 179 阅读 · 0 评论 -
malloc,calloc区别
C语言的标准内存分配函数:malloc,calloc,realloc,free等。 malloc与calloc的区别为1块与n块的区别: malloc调用形式为(类型*)malloc(size):在内存的动态存储区中分配一块长度为“size”字节的连续区域,返回该区域的首地址。 calloc调用形式为(类型*)calloc(n,size):在内存的动态存储区中分配n块长度为“size”字节的...原创 2018-03-07 10:28:50 · 26166 阅读 · 4 评论 -
VS2010 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏问题的解决方案
问题描述:LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 解决方案:删除vs安装目录下bin中的cvtres.exe C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe 问题原因: 当前系统中存在两个cvtres.exe文件,版本不同。让VS2010使用原创 2017-10-20 17:27:30 · 1189 阅读 · 1 评论 -
visual studio2010下FFTW的安装
FFTW安装详细安装步骤原创 2017-10-31 19:32:35 · 837 阅读 · 0 评论 -
_CRT_SECURE_NO_WARNINGS错误提示,解决办法
在项目->属性->C/C++->预处理器->预处理器定中添加 _CRT_SECURE_NO_WARNINGS 这个预定义。原创 2018-05-13 12:49:19 · 1310 阅读 · 0 评论