
C/C++
文章平均质量分 94
荪荪
这个作者很懒,什么都没留下…
展开
-
借一栗子讲解基于C的CUDA并行计算
代码1// ConsoleApplication6.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;//自定义数据类型 数据对齐typedef struct student{ char label[1]; int number; float score;}stu;int _tmain(int argc, _TCHAR* argv[]){ //在cp原创 2021-03-29 09:13:12 · 882 阅读 · 0 评论 -
C语言基础
基本数据类型----变量的定义int a ; // int整形程序执行这句语句的时候,系统会在存在中开辟一个大小的为4个字节的空间,用于存放一个整数;这个内存空间表示的值就是变量a的值,这里的a为变量名;变量名有子母,数字、下划线组成,其中数字不能作为变量名的开头。char c;程序执行这句语句的时候,系统会在存储中开辟一个大小为1个字节的空间,用来存放一个字符;这里的字符指的是英文字符,中文是无法用一个字节去存储的。输入输出输入处处函数的声明都包含在<stdio.h>原创 2021-01-24 22:30:33 · 1098 阅读 · 0 评论 -
C/C++中auto
auto的原理就是根据后面的值,来自己推测前面的类型是什么。换言之,就是声明变量的同时初始化,也就是确定了这个变量的类型。auto的作用就是为了简化变量初始化,如果这个变量有一个很长很长的初始化类型,就可以用auto代替。注意点:1.用auto声明的变量必须初始化(auto是根据后面的值来推测这个变量的类型,如果后面没有值,自然会报错)2.函数和模板参数不能被声明为auto(原因同上)3.因为auto是一个占位符,并不是一个他自己的类型,因此不能用于类型转换或其他一些操作,如sizeof和type原创 2020-05-27 14:34:45 · 580 阅读 · 0 评论 -
windows下创建unistd.h
由字面意思,unistd.h是unix std的意思,是POSIX标准定义的unix类系统定义符号常量的头文件,包含了许多UNIX系统服务的函数原型,例如read函数、write函数和getpid函数。unistd.h在unix中类似于window中的windows.h。许多在Linux下开发的C程序都需要头文件unistd.h,但VC中没有个头文件,把下面的内容保存为unistd.h,放在Vi...原创 2020-01-13 16:11:38 · 7447 阅读 · 0 评论 -
利用FindFirstFile(),FindNextFile()函数历遍指定目录的所有文件
本文利用FindFirstFile(),FindNextFile()函数历遍指定目录的所有文件,最基础的历遍所有文件。一下代码尚无法解决文件名为中文时的乱码问题,以及无法分别无后缀的文件名和文件夹名的区别。http://blog.youkuaiyun.com/u012005313/article/details/46490437FindFirstFile()用于获得指定目录的第一个文件。其原型转载 2016-07-29 07:53:23 · 6426 阅读 · 0 评论 -
【人脸检测】“人脸训练代码”项目笔记(2)——代码部分
1.拷贝构造函数并非必须,除非含有指针成员或有特殊要求复制构造函数的参数,必须采用“引用”; 析构函数是否需要定义:并非必须,除含有指针成员或有特殊要求。2.在IplImage结构体中,用到cvLoadImage()函数加载图像就要用cvReleaseImage()函数进行释放内存3.先释放结构体内的内存,然后再释放结构体外部内存;释放数组后,将指针指向NULL, 例如:二原创 2016-07-29 15:07:54 · 779 阅读 · 0 评论 -
C\C++中getchar()函数
函数名: getchar功 能: 从stdio流中读字符用 法: int getchar(void);getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符.getchar函数的返回原创 2016-08-05 14:38:14 · 11954 阅读 · 0 评论 -
C\C++中头文件string与string.h的区别
http://www.cnblogs.com/Cmpl/archive/2012/01/01/2309710.html在C++中,#include与#include的区别,前者要使用更新的编译器(其实大部分编译器多比较前卫了,出了有些搞嵌入式的用变态的编译器)。喔,原来iostream是C++的头文件,iostream.h是C的头文件,即标准的C++头文件没有.h扩展名,将以前转载 2016-08-17 08:42:13 · 7010 阅读 · 3 评论 -
C语言中的strrch()函数
strrchr() 函数(在php中)查找字符在指定字符串中从左面开始的最后一次出现的位置,如果成功,返回该字符以及其后面的字符,如果失败,则返回 NULL。与之相对应的是strstr()函数,它查找字符串中首次出现指定字符以及其后面的字符。函数简介函数名称: strrchr函数原型:char *strrchr(const char *str, char c);原创 2016-08-08 14:14:14 · 1572 阅读 · 0 评论 -
Error 3 error C4996: 'cv::flann::Index_<T>': was declared deprecated c:\open
Error 3 error C4996: 'cv::flann::Index_': was declared deprecated c:\open解决方案:用flaan.hpp的第282行:Index_::Index_(const Mat& dataset, const ::cvflann::IndexParams& params);替换flann.hpp的233行:Index_(cons原创 2016-08-09 20:41:29 · 2054 阅读 · 0 评论 -
C\C++中istringstream、ostringstream、stringstream 类介绍 .
1、头文件[cpp] view plaincopyprint?#include 2、作用istringstream类用于执行C++风格的字符串流的输入操作。 ostringstream类用于执行C++风格的字符串流的输出操作。 strstream类同时可以支持C++风格的串流的输入输出操作。3、具体分析istrin原创 2016-08-10 13:33:16 · 705 阅读 · 0 评论 -
C++中用rand()和srand()产生为随机数方法介绍
http://www.cnblogs.com/gamesky/archive/2012/08/21/2648600.html标准库(被包含于中)提供两个帮助生成伪随机数的函数: 函数一:int rand(void);从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。 函数二:void srand(u转载 2016-08-10 20:07:25 · 2187 阅读 · 0 评论 -
opencv头文件
opencv.hpp头文件的内容为:#ifndef __OPENCV_ALL_HPP__#define __OPENCV_ALL_HPP__#include "opencv2/core.hpp"#include "opencv2/imgproc.hpp"#include "opencv2/photo.hpp"#include "opencv2/video.hpp"#原创 2016-08-11 07:34:45 · 1835 阅读 · 0 评论 -
C语言strcat()函数:连接字符串
链接:http://c.biancheng.net/cpp/html/160.html头文件:#include strcat() 函数用来连接字符串,其原型为: char *strcat(char *dest, const char *src);【参数】dest 为目的字符串指针,src 为源字符串指针。strcat() 会将参数 src 字符串复制到参数原创 2016-08-05 13:51:42 · 7638 阅读 · 0 评论 -
C语言fprintf()函数:输出函数(格式化输出数据至文件)
链接网址:http://c.biancheng.net/cpp/html/291.html相关函数:printf, fscanf, vfprintf头文件:#include 定义函数:int fprintf(FILE * stream, const char * format, ...);函数说明:fprintf()会根据参数format 字符串来转换并格式化数转载 2016-08-05 13:37:00 · 4942 阅读 · 0 评论 -
C\C++中 fopen中w w+ wb区别:
在C语言中,大家常用到fopen打开文件,准备进行写操作,再用fwrite把数据写入文件,最后用fclose关闭文件。如以下C代码: #include char buf[10] = {10,10,10,10,10,10,10,10,10,10};FILE *fp = fopen("c:\\test.dat","w");fwrite(buf,1,10,fp);转载 2016-08-05 09:42:59 · 35253 阅读 · 0 评论 -
【人脸检测】“人脸训练代码”项目笔记(3)——代码结构分析
在IplImage中,加载图片,即Load函数:先用cvLoadImage()加载图片,然后检查是否加载成功,主要看height和width是否为0,若为0,则加载失败;加载成功后对图片进行SetSize(),即设置图像的大小尺寸,并清除之前数据,再为内部向量和矩阵申请内存,变量初始化,将向量转化为矩阵。 接着对数据进行赋值,for(int i=0,ih=img->原创 2016-07-29 15:08:13 · 1412 阅读 · 0 评论 -
Error 72 error LNK1181: cannot open input file 'opencv_world310.lib' E:\VC-WORK\FaceTrainVS2010_new\
Error 72 error LNK1181: cannot open input file 'opencv_world310.lib'E:\VC-WORK\FaceTrainVS2010_new\FaceTrainVS2010\LINK解决方法:原创 2016-08-03 16:44:59 · 3787 阅读 · 1 评论 -
内存分配问题
一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结 构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构 中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(s原创 2016-08-15 15:15:32 · 492 阅读 · 0 评论 -
C\C++中的return不带参数
return ;其实就是void类型函数的返回。你不写也可以,但是有这样一个情况需要考虑void function(){ if(xxx) return ; aaa; bbb; cccc;}上面有aaa,bbb,ccc三行代码。如果你需要判断某某某条件不满足的时候,函数直接返回,那么就需要使用到return ;了。换句话说,这个语句可以使函数提前返回,不用执行后面原创 2016-08-15 17:39:49 · 3335 阅读 · 0 评论 -
Error 30 error C2664: 'HANDLE FindFirstFileW(LPCWSTR,LPWIN32_FIND_DATAW)' : 不能将参数 1 从“char [260]”转换为
Error 30 error C2664: 'HANDLE FindFirstFileW(LPCWSTR,LPWIN32_FIND_DATAW)' : 不能将参数 1 从“char [260]”转换为“LPCWST解决方法:1、把工程设置里去掉UNICODE宏定义 项目->XXX属性->配置属性->常规->字符集 改为 “未设置” 就去掉了unicode支原创 2016-08-04 13:42:44 · 4997 阅读 · 1 评论 -
【人脸检测】“人脸训练代码”项目笔记(1)——头文件
头文件:#include 在遍历文件是用到了函数FindFristFile函数#include 主要定义一些和缓冲区相关的读写函数,例如 write opendir.h 主要是对磁盘文件路经进行操作的函数;stdio.h 主要是输入输出的函数 例如 printf scanfstdlib.h主要包含了系统工具函数 例如内存管理 mallocstr原创 2016-07-28 20:25:04 · 934 阅读 · 0 评论 -
C/C++中nth_element函数
模板函数头文件: 函数名: std::nth_element(1)template void nth_element (RandomAccessIterator first, RandomAccessIterator nth, RandomAccessIterator last);(2)template void nth_el原创 2016-05-16 17:34:02 · 9598 阅读 · 1 评论 -
C\C++中iterator与const_iterator及const iterator区别
类似于指针const vector::iterator中,const是修饰的迭代器,也就是是个常迭代器,一旦初始化比如=a.begin(),再不能更改它的值,比如赋值=a.end()是不行的,递增递减操作等都不允许。虽然类似指针,但指针是内置类型,所以编译器可以通过const的位置来判断是常指针还是指向常量的指针,而迭代器只是一个对象,所以编译器不能分辨,所以用const_iterator来取转载 2016-08-11 09:49:20 · 9741 阅读 · 1 评论 -
C++ 中Set常用用法
set集合容器:实现了红黑树的平衡二叉检索树的数据结构,插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,以保证每个子树根节点键值大于左子树所有节点的键值,小于右子树所有节点的键值;另外,还得保证根节点左子树的高度与右子树高度相等。平衡二叉检索树使用中序遍历算法,检索效率高于vector、deque和list等容器,另外使用中序遍历可将键值按照从小到大遍历出来。构造set集合主要转载 2016-08-11 10:12:13 · 3093 阅读 · 0 评论 -
C/C++基础——map的基本操作总结
http://blog.youkuaiyun.com/google19890102/article/details/51720305标准库map类型是一种以键-值(key-value)存储的数据类型。以下分别从以下的几个方面总结:map对象的定义和初始化map对象的基本操作,主要包括添加元素,遍历等1、pair类型1.1、pair类型的定义和初始化pair类型是在有原创 2016-08-11 10:37:00 · 1801 阅读 · 0 评论 -
【VC++DLL动态链接库编程】教程目录(1)
暂且写个轮廓,只有进行补充:目录:1. 动态链接库编程之基础概念2. 静态链接库3. 导出函数4. 导出类5. extern "C"6. 不需要头文件直接导入动态链接库原创 2017-01-22 15:56:57 · 1320 阅读 · 0 评论 -
【VC++DLL动态链接库编程】VC++静态库编译(3)
创建一个静态库,得有一个程序去调用它,首先添加一个类:菜单栏: 项目-->添加类-->C++类在staticLib右击属性,新建一个项目:静态库的引用:除了项目设置中的属性进行引用;还可以选择通过代码进行引用,即通过预编译的指令:#pragma comment(lib,"staticLib")这段代码只能放在cpp或c文件中,不能放在.h文件中,以防多次原创 2017-01-22 15:18:38 · 2224 阅读 · 0 评论 -
【C/C++】char 与 unsigned char的本质区别
在C中,默认的基础数据类型均为signed,现在我们以char为例,说明(signed) char与unsigned char之间的区别 首先在内存中,char与unsigned char没有什么不同,都是一个字节,唯一的区别是,char的最高位为符号位,因此char能表示-128~127, unsigned char没有符号位,因此能表示0~255,这个好理解,8个bit,最多256原创 2017-06-01 15:33:32 · 6856 阅读 · 0 评论 -
【C/C++】堆和栈的区别
堆和栈的区别: 一、堆栈空间分配区别: 1、栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈; 2、堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。 二、堆栈缓存方式区别: 1、栈使用的是一级缓存, 他们通常都是被调用时处于存储空间原创 2017-06-02 15:17:09 · 911 阅读 · 0 评论 -
关于"一个16位寄存器大小16bit,也就是2Byte,最大能储存64KB "解释
1. 16位寄存器共有16个二进制位,每一位只能用0或1表示,比如0000 0000 0000 0000(这个本子就只能写0和1,最多写16位)2.可以记录从0-65535(2的16次方减一)任何一个数字,但只能记录一个数,这个数的最大值是65535;3. 如果是指针指令寄存器,用来寻址的话,寻址范围是2^16个内存单元,每个内存单元是1Byte,所以是2^16Byte,等于6原创 2017-08-14 14:54:25 · 24654 阅读 · 0 评论 -
c语言头文件怎么写?
c语言头文件怎么写?http://blog.youkuaiyun.com/notbaron/article/details/44602759大致格式:#ifndef __ABC_H__#define __ABC_H__//以上是为了防止头文件被多次包含,可以省略,最好有,名字任意,保证唯一即可//以下是宏定义,可有可无#define转载 2017-08-14 22:08:22 · 6020 阅读 · 0 评论 -
C语言中memset函数详解
功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作 用 法: void *memset(void *s, char ch, unsigned n); 程序例: #include #include #include int m转载 2016-05-19 17:34:03 · 790 阅读 · 0 评论 -
C/C++中near和far
C/C++中near和far的区别 关键字near和far受目标计算机体系结构的影响。目前编程中使用不多。 near关键字创建一个指向可寻址内存低端部分的目标指针。这些指针占用内存的单一字节,并且他们能够指向的内存单元被限制到256个位置,通常是在 0x0000~0x00ff范围中。 int near * ptr; far关键字创原创 2016-05-01 15:50:00 · 5048 阅读 · 0 评论 -
C\C++中“#ifdef __cplusplus与extern "C" { #endif” 的理解
在工作中,C、C++密不可分,做我们嵌入式方面的,当然更多的是C,但,有时候却少不了C++,而且是C、C++混搭(混合编程)在一起的,比如,RTP视频传输,live555多媒体播放等都是C++下的,他需要调用JRTPLIB库,所以,很多时候,C++还是蛮不错的。。。。但,*.c与*.cpp文件混搭在一起,不是那么的简单。#ifdef __cplusplus //c++编译环境中才会定义__原创 2017-08-14 10:03:03 · 8237 阅读 · 0 评论 -
【VC++DLL动态链接库编程】DLL动态链接库创建(4)
完成静态库的编译,下面就要进行动态库的导入,动态库的语法相对静态库要麻烦点,编译静态库的时候并未对静态库做特殊的处理,包含调试只需要把添加到项目中就可以。但是动态链接库,对头文件和库都要进行相应的处理。创建一个项目,有几种方案,其中,在应用程序类型中选择dll,在附加项中选择导出符号,选择导出符号这样做比较方便,很多东西都帮你做好了。生成一个dll.h dll.cpp dllmain.cp原创 2017-01-22 15:37:30 · 1692 阅读 · 0 评论 -
VS2013常用快捷键
VS2013常用快捷键: 1.回到上一个光标位置/前进到下一个光标位置 1)回到上一个光标位置:使用组合键“Ctrl + -”; 2)前进到下一个光标位置:“Ctrl + Shift + - ”。 2.复制/剪切/删除整行代码 1)如果你想复制一整行代码,只需将光标移至该行,再使用组合键“Ctrl+C”来完成复制操作,而无需选择整行。 2)如果你想剪转载 2016-09-07 13:26:59 · 627 阅读 · 0 评论 -
C/C++基础——set的基本操作总结
http://blog.youkuaiyun.com/google19890102/article/details/51720988set容器中只能存储键,是单纯的键的集合,其中键是不能重复的。set支持大部分的map的操作,但是set不支持下标的操作,而且没有定义mapped_type类型。下面简单总结下set容器的操作:1、set对象的定义和初始化set转载 2016-08-11 10:40:14 · 1322 阅读 · 0 评论 -
C\C++中函数后面加const
c++ 在函数后加const的意义: 我们定义的类的成员函数中,常常有一些成员函数不改变类的数据成员,也就是说,这些函数是"只读"函数,而有一些函数要修改类数据成员的值。如果把不改变数据成员的函数都加上const关键字进行标识,显然,可提高程序的可读性。其实,它还能提高程序的可靠性,已定义成const的成员函数,一旦企图修改数据成员的值,则编译器按错误处理。 const成员函数和const对原创 2016-08-25 09:02:22 · 68199 阅读 · 4 评论 -
Unhandled exception at 0x007be7e0 in test.exe: 0xC0000005: Access violation writing location 0x00000
Unhandled exception at 0x007be7e0 in test.exe: 0xC0000005: Access violation writing location 0x00000010.这个问题除了是访问数组越界,或者空指针还会是什么原因引起的?原创 2016-09-05 20:27:11 · 3910 阅读 · 0 评论