
C++基础知识
DX_dove
致力于计算机视觉的开发。
展开
-
C++-vector(容器)
容器定义:在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。很简单,容器就是保存其它对象的对象。与数组类似,可以和数组一样进行数据访问:vector c[];下面利用几个基本函数实现vector的应用: push_back( )在尾部加一个数据 pop_back( )删除最后一个数据 max_size( )容器中最大数据量转载 2016-10-13 21:31:54 · 443 阅读 · 0 评论 -
C++保存数据到txt文件
首先,在C++中对文件进行操作,要包含头文件#include using namespace std;然后是打开文件。这里打开文件有几种情况ofstream outfile;outfile.open("data.txt", ios::binary | ios::app | ios::in | ios::out);//注意,里面有iOS::app,表示打开文件后,在写入的原创 2018-01-25 13:31:23 · 49568 阅读 · 6 评论 -
在C++编程中srand((unsigned int)(time(NULL)))这句代码的解读
分享这个博客链接,讲的真的很好。 主要有以下3方面收获: 1.srand跟rand的关系。 就是每次使用rand(),都会看之前调用了srand()函数没有,没有,默认调用了srand(1). 有调用,就是strang(seed),这里的seed就是标题的time(NULL).rand()取随机数公式:要取得[a,b)的值可以用:(rand()%(b-a))+ a;(当a为0时,可以用r转载 2017-11-26 22:54:39 · 5212 阅读 · 0 评论 -
C++编程基础(1)-C中的malloc/free和C++中的new/delete
1.在C的代码中,经常用到malloc在堆上开辟内存,然后用free释放内存(后面会说释放后,最好加上NULL)。而在C++中的开辟内存和释放内存用的是new/delete. 下面就来说说这两者区别:有了malloc/free为什么还要有new/delete 要知道,malloc/free是C/C++语言标准库中的标准库函数,而new/delete是C++语言中的运算符。 有这样一句话:虽然原创 2017-11-13 11:56:53 · 466 阅读 · 0 评论 -
C++计算代码运行时间
参考:http://blog.youkuaiyun.com/songzige/article/details/51181934#include "time.h" using namespace std; int main(){ clock_t start, finish; double time_length; start = clock();//start /转载 2017-10-15 16:10:50 · 764 阅读 · 0 评论 -
C++中一种典型的语法错误:c++中临时变量不能作为非const的引用参数
最近编译代码,出现了一种很奇怪的错误,按正常思维来说是没有问题的。 看错误信息(我编译的是oepnCV的代码) 错误对应的代码块: 错误原因分析: 就拿f(a + b)来说,a+b的值会存在一个临时变量中,当把这个临时变量传给f时,由于f的声明中,参数是int&,不是常量引用,因为c++编译器的一个关于语义的限制。 如果一个参数是以非const引用传入,c++编译器就有理由认为程序员会在函原创 2017-10-15 11:59:07 · 584 阅读 · 0 评论 -
C++中的Vector 的删除操作
vector vecInt; for (int i=0;i<500;i++) { vecInt.push_back(i); } int j= vecInt.capacity(); //j=512 i = vecInt.size(); //i=500 第一种办法使用 clear ,清空元素转载 2017-04-13 15:15:26 · 1653 阅读 · 0 评论 -
printf()函数的使用技巧(\r\n)
以前在变成调试的时候,一直不知道\r和\n有什么区别,觉得差不多,今天使用的时候就被坑了一把。 这里首先要理解:\n是换行,就是光标移动到下一行,\r是讲光标移动到本行的开始处。所以,在计时的时候,应该这样写:clock_t begin =clock();//add your codeclock_t end=clock();double process_time = double(end-beg原创 2017-04-01 22:09:11 · 17289 阅读 · 1 评论 -
结构体理解与应用
知道为什么要结构化信息 下面用代码说明一个简单的表格int id[4]={201501,201502,201503,201504};char name[4][16]={"ssss","DDCAS","ADSD","aDSA"};char phone[4][16]={"1314342525","1314342525","1314342525","1314342525",};这种方法表达一个表格原创 2016-12-13 20:16:17 · 584 阅读 · 0 评论 -
C++的函数模板和类模板理解
函数模板#include <iostream>#include<stdlib.h>using namespace std;//d=定义一个函数模板template <typename T>void display(T a){ cout << a << endl;}template<typename T,typename S>void display(T t, S s){原创 2016-11-14 22:07:34 · 595 阅读 · 0 评论 -
openCV-迭代器iterator使用注意
在使用迭代器的时候,会遇到const和vector,iterator的结合。vector前面加constvector<int> a(10,9);const vector<int>::iterator iter=a.begin();//这种情况下,表示iter是一个常量++iter//这句话就是错的,其原因是iter是一个常量,因此是不能改变的。换句话说,iter只能指向vv的地一个元素,不转载 2016-11-16 20:18:04 · 4192 阅读 · 1 评论 -
C++中的回调函数,函数指针理解
小知识:C和C++中struct 的区别就是C中的struct不能有成员函数,C++中可以有。 C++中可以通过类实例化对象来调用成员函数,在C语言中,就可以用函数指针来调用回调函数。 函数指针:函数指针就是指向一个函数,存储的是那个函数的地址 回调函数:就是通过函数指针来调用函数指针指向的函数。#include <iostream>#include <stdlib.h>using nam原创 2016-11-12 22:00:10 · 469 阅读 · 0 评论 -
C++和C中的static讲解
全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使转载 2016-11-09 20:22:06 · 472 阅读 · 0 评论 -
C++(static使用注意,和非static区别)
C++类中的static 在C++中有静态成员变量和静态成员函数,要注意,在C++类和对象的概念中,先有类,才有对象。因为static型的成员函数和成员变量是在类产生的时候分配的内存,产生于对象之前,故不能再static型函数中调用普通的成员变量和成员函数。而且在static型函数后面不能加const(原因注释里有) 下面通过代码说明:#ifndef Tank_h_#define Tank_原创 2016-11-09 20:07:53 · 3760 阅读 · 0 评论 -
算法思维-2 :异或寻找数组中不同的数,并确定位置
题目:一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字代码:异或:相同为0,相异为1代码中用n确定位置,我思考了一会儿:n并不是记录了位置的索引,而是记录x中从后往前第一个1出现的位置,这个位置上,两个落单的数此位置肯定不一样,才会有异或为1的结果,所以两个落单的数(a 和b),一定有如果a&n=0,则b&n!=0.其他的data...原创 2019-03-14 21:04:35 · 1239 阅读 · 0 评论