C++
csdn_1HAO
从事图像处理与模式识别,深度学习;常用工具vs,matlab,python,tensorflow,opencv,pytorch
展开
-
C++ 指针基本概念
Ⅰ.内存和地址我们已经很熟悉一些基本的存储单位了,比如一个bit(位)用存储0或者1.也可以把几个bit合起来表示更大的数字,比如一个byte(字节)就包含了8个bit.这些都是很基础很简单的东西.然后我们可以把计算机的内存想象成一个字节数组,内存中的每一个地址表示一个字节. 每个字节中都能够存储一定位数的内容,因此,每个字节都能够通过一些地址来标识.有时候,一个字节不够,怎么办呢?那么就同时用...转载 2018-03-10 17:30:30 · 423 阅读 · 0 评论 -
vector的初始化及常用操作
1.vector的初始化:可以有五种方式,举例说明如下:(1) vector<int> a(10); //定义了10个整型元素的向量(尖括号中为元素类型名,它可以是任何合法的数据类型),但没有给出初值,其值是不确定的。(2)vector<int>a(10,1); //定义了10个整型元素的向量,且给出每个元素的初值为1(3)vector<int>a(b); ...原创 2018-08-02 11:20:42 · 7819 阅读 · 0 评论 -
从向量中读取元素:
从向量中读取元素:1通过下标:int a[6] = { 1,2,3,4,5,6 }; vector<int> b(a, a + 4); for (int i = 0; i <= b.size() - 1; i++) cout << b[i] << " ";2通过迭代器int a[6] = { 1,2,3...原创 2018-08-02 11:23:33 · 1164 阅读 · 0 评论 -
Visual Stutio中win32控制台应用程序、win32项目、MFC项目的区别:
我的理解,我首先把这几个货分为两大类;第一类包括win32控制台应用程序,第二类就是剩下那俩货。而剩下那俩货又有一个包含关系,即win32项目包含mfc。(我个人是这个区分的。) 一、 区别:(1)Win32控制台程序,没有界面,只有命令符。生成的“.exe”文件直接运行操作即可。(2)Win32项目,有界面。但是界面里面的控件,基本上要自己去实现。(...原创 2018-08-02 11:42:01 · 583 阅读 · 0 评论 -
排序并记录排序前的索引(类似matlab sort函数)
这里用到vector比较方便。#include<iostream>#include<vector>#include<algorithm>using namespace std;struct num_label { int num; int label;}; //自定义“大于”bool comp(const ...原创 2018-08-02 11:53:30 · 3499 阅读 · 0 评论 -
vector元素的读取
1通过下标:int a[6] = { 1,2,3,4,5,6 }; vector<int> b(a, a + 4); for (int i = 0; i <= b.size() - 1; i++) cout << b[i] << " ";2通过迭代器int a[6] = { 1,2,3,4,5,6 };...原创 2018-08-02 11:54:31 · 6947 阅读 · 0 评论 -
vector赋值的常见错误
易范错误1:vector<int> a; for (int i = 0; i<10; i++) a[i] = i; //这种做法以及类似的做法都是错误的。下标只能用于获取已存在的元素,而现在的a[i]还是空的对象正确做法1:vector<int> a; for (int i = 0; i<10; i++...原创 2018-08-03 12:31:24 · 2652 阅读 · 0 评论 -
vector 中的元素去重
#include<iostream>#include<vector>#include<algorithm> using namespace std; int main() { cout << "********************一维向量*************************" << ...原创 2018-08-02 12:04:17 · 1157 阅读 · 0 评论 -
vector 2维向量
#include<iostream>#include<vector>#include<algorithm> using namespace std; vector<vector<double>> test() { vector<vector<double> > array2D(原创 2018-08-03 12:31:02 · 1571 阅读 · 0 评论 -
“引用作为函数参数”与 “引用作为函数返回值”
一、引用作为函数参数作为函数参数时引用有两种原因:1、在函数内部会对此参数进行修改;2、提高函数调用和运行效率。 关于第一点,都知道C++里提到函数就会提到形参和实参。如果函数的参数实质就是形参,不过这个形参的作用域只是在函数体内部,也就是说实参和形参是两个不同的东西,要想形参代替实参,肯定有一个值的传递。函数调用时,值的传递机制是通过“形参=实参”来对形参赋值达到传值目的,产生了一...原创 2018-09-13 13:32:55 · 1661 阅读 · 0 评论 -
内存泄露与内存溢出
内存泄露是指你的应用使用资源之后没有及时释放,导致应用内存中持有了不需要的资源,这是一种状态描述。 内存溢出是指你的应用的内存已经不能满足正常使用了,堆栈已经达到系统设置的最大值,进而导致崩溃,这事一种结果描述。...原创 2018-09-13 13:32:41 · 376 阅读 · 0 评论 -
构造函数,拷贝构造函数,赋值函数
C++中一般创建对象,拷贝或赋值的方式有构造函数,拷贝构造函数,赋值函数这三种方法。下面就详细比较下三者之间的区别以及它们的具体实现1.构造函数构造函数是一种特殊的类成员函数,是当创建一个类的对象时,它被调用来对类的数据成员进行初始化和分配内存。(构造函数的命名必须和类名完全相同)首先说一下一个C++的空类,编译器会加入哪些默认的成员函数·默认构造函数和拷贝构造函数·析...原创 2018-09-13 13:32:26 · 161 阅读 · 0 评论 -
'fopen' This function or variable may be unsafe
1>...error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.1> 正在生成代码.....原创 2018-07-23 14:09:33 · 770 阅读 · 0 评论 -
cuda安装配置VS2013
1.1 安装cuda首先官网下载安装包,这个就不细说了 ,我下的是这个版本cuda_8.0.61_win10.exe,,注意win7和win10版本要对应,千万别弄错了 之后双击会出现如下截图,解压完以后一直点下一步如下图 出现这个等半个小时左右就好了安装结束后开始配置系统环境变量win10可以这么操作win+s 搜索环境,自动匹配出系统环境变量1.2 配置环境变量打开环境变量后如下图:如图中点击...原创 2018-06-04 09:31:46 · 601 阅读 · 0 评论 -
以OpenCV为例配置VS第三方库
正常情况下,你拿到的别人的第三方动态库(静态库调用方式这里不讲,有另外一篇文章)至少应该包含下面三种文件:1. 头文件,这个一般放在include这样字眼的文件夹下,比如OpenCV的:然后include里面还分成了许多文件夹,便于管理。 2. dll文件,这个一般放在bin这样字眼的文件夹下,比如:3. dll配套的动态lib文件,这个就一般放在lib这样字样的文件夹下,比如:好了,我们要配置就...原创 2018-06-04 09:31:59 · 748 阅读 · 0 评论 -
C++ 运算符优先级
优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右 ()圆括号(表达式)/函数名(形参表) .成员选择(对象)对象.成员名 ->成员选择(指针)对象指针->成员名 2-负号运算符-表达式右到左单目运算符(类型)强制类型转换(数据类型)表达式 ++自增运算符++变量名/变量名++单目运算符--自减运算符--变量名/变量名--单目运算符*取值运算符*指针变量...原创 2018-03-10 17:42:17 · 38739 阅读 · 5 评论 -
VC与VS对应版本号
Microsoft Visual Studio 6.0: VC6.0Microsoft Visual Studio .NET 2002: VC7.0 Microsoft Visual Studio .NET 2003: VC7.1 Microsoft Visual Studio 2005: VC8.0 Microsoft Visual Studio 200...原创 2018-03-27 17:50:21 · 1935 阅读 · 0 评论 -
VS2015配置freegult
与vs配置opencv类似1.首先先找到自己系统里OpenGL相关.h.lib .dll的位置一般系统里已自带,只要去找到就好,我的位置:gl.h C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\glOpenGL32.Lib GlU32.Lib C:\Program Files\MicrosoftSDKs\Windows\v6.0A\...原创 2018-03-27 17:51:19 · 765 阅读 · 0 评论 -
OpenGL 各类库的解析gl glu glut freeglut glfw glew
gl.hgl库是核心库,gl中包含了最基本的3D函数,可以再本地电脑中的: C:\Program Files (x86)\MicrosoftSDKs\Windows\v7.0A\Include\gl 路径下找到gl.h头文件,打开后可以看到其中定义的上百个相关函数。glu.hglu是实用库,包含有43个函数,函数名的前缀为glu。glu 为了减轻繁重的编程工作,glu对gl中的函数进行部分封装,g...原创 2018-03-27 17:52:16 · 862 阅读 · 0 评论 -
C++内存
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统原创 2018-04-24 14:10:22 · 160 阅读 · 0 评论 -
C++ setw和setfill
在C++中,setw(int n)用来控制输出间隔。例如:cout则在屏幕显示s a //s与a之间有7个空格,setw()只对其后面紧跟的输出产生作用,如上例中,表示'a'共占8个位置,不足的用空格填充。若输入的内容超过setw()设置的长度,则按实际长度输出。setw()默认填充的内容为空格,可以setfill()配合使用设置其他字符填充。如cou原创 2018-04-24 14:12:10 · 764 阅读 · 0 评论 -
C++ this
对象a的内存地址和this指针的一模一样(都是0017F7E8);而当运行到对象b的时候,它的内存地址又和它所对应的this指针指向的内存地址一模一样了(都是0017F7DC)。这就说明了this指针变量记录的是当前对象的内存地址,即this指针指向当前的对象原创 2018-04-24 14:13:06 · 132 阅读 · 0 评论 -
C++ 指针函数和函数指针
1、指针函数(1)基本概念指针函数:顾名思义就是带有指针的函数,即其本质是一个函数,只不过这种函数返回的是一个对应类型的地址。(2)定义式type *func(type , type)如:int *max(int x, int y)(3)例子详解[cpp] view plain copy1. #include 2. using names原创 2018-04-24 14:14:20 · 1177 阅读 · 0 评论 -
C++ cin.sync()和cin.ignore()
cin.sync()的功能是清空缓冲区,而cin.ignore()虽然也是删除缓冲区中数据的作用,但其对缓冲区中的删除数据控制的较精确。有时候你只想取缓冲区的一部分,而舍弃另一部分,这是就可以使用cin.ignore(),其使用方法是:cin.ignore(int intExp, char chExp);其中intExp 是一个整型表达式,也可以是一个整型数值,这个数值表示在一行中原创 2018-04-24 14:19:17 · 3297 阅读 · 0 评论 -
错误C4996:'std :: _Copy_impl'
编译示例程序时出现错误C4996:'std :: _Copy_impl':使用可能不安全的参数的函数调用(error C4996: &#39;std::_Copy_impl&#39;:Function call with parameters that may be unsafe)在于处理器中添加_SCL_SECURE_NO_WARNINGS...原创 2018-05-21 09:32:49 · 1293 阅读 · 0 评论 -
VIsual Studio编译OpenCV:无法打开python27_d.lib(python36_d.lib)的问题
在用 VS2015 编译 Debug 版的 openCV 源码时,最后一步生成 INSTALL,碰到了下面问题:因为配置 Windows 版 caffe 的需要,我先安装了一个 Anaconda3(3.6版本),caffe 最高支支持到 3.5 ,所以安装了一个 Anaconda2(2.7版本),openCV 用 Cmake 编译时都检测到了,所以同时碰到了这两个问题。这个是 Anaconda 中...原创 2018-05-21 09:44:59 · 2795 阅读 · 3 评论 -
C++常用的容器(vector、set、list、map)
C++ STL中最基本以及最常用的类或容器无非就是以下几个:string vector set list map下面就依次介绍它们,并给出一些最常见的最实用的使用方法,做到快速入门。string首先看看我们C语言一般怎么使用字符串的char* s1 = "Hello SYSU!"; //创建指针指向字符串常量,这段字符串我们是不能修改的 //想要创建 可以修改的字...原创 2018-09-13 13:31:53 · 4100 阅读 · 1 评论