- 博客(7)
- 资源 (24)
- 收藏
- 关注
原创 C++中循环中用i++还是++i
首先说结论, 我习惯在循环中用i++, 下面这两种写法结果是相同的 for (int i = 0; i<5; i++) { printf("%d", i); } for (int i = 0; i<5; ++i) { printf("%d", i); } 以前上学的时候学过 i++ 和 ++i是不同的,哪里不同呢 int a = 0; int b = a++; //b的结果是0 我们分析一下汇编 int a = 0; 00F0236E mov..
2021-01-26 15:21:54 327
原创 C++中Int和long的不同
int 和 long在window下都是32位, 范围都是-2,147,483,648 to 2,147,483,647 (2^31), 但是奇葩的是,在linux下不一样了, 在linux下, int是32位, 但是long是64位.这一点大家要注意
2021-01-26 14:27:12 504
原创 dll工程的创建
本篇博客介绍了如何创建dll工程,生成一个dll,并提供调用例子. 一个dll工程, 给用户的文件有 //dll文件,包含程序主体 dll_demo.dll //lib文件,包含接口信息 dll_demo.lib //h文件,包含接口声明 dll_demo.h ps:c++调用,如果不提供lib文件,用户调用的时候需要使用LoadLibrary方法自行加载. c#或java调用时,用户需要根据h文件自己写对应的加载函数. dll工程包含如下文件: //h文件,包含接口声明 dll_demo..
2021-01-13 15:35:04 229
原创 EffectiveModernC++读书笔记
本篇博客是Scott Meyers的EffectiveModernC++读书笔记. 第一章 Deducing Types. 观察下面的例子,在调用*cout<<f1(a)<<endl;*的时候程序员不需要显示标明类型,C++进行了类型自动推理 template <typename T> T f1(T p) { p = p + 1; return p; } int main() { double a = 3; cout << f1(a) &..
2021-01-12 17:46:37 411 2
原创 返回右值
有时候函数需要返回一个vector的对象,直接返回觉得不是很好,就通过引用过来,比如这样 std::vector<int> func(std::vector<int> &v) { v.push_back(10); return; } 后来觉得这样更好,返回右值,性能会提高. std::vector<int> func2() { std::vector<int> v; v.push_back(10); return move(v)..
2021-01-08 14:39:29 444
原创 智能指针
智能指针是为了解决下面这个问题提出的 void func() { void *buf = (void*)malloc(1024); if (some_fun()) throw exception(); //some thind ... free(buf); return; } 如果上面代码异常发生了,free就可能不运行了.c++ 设计中就在 <memery>中增加了智能指针.不用程序员显示释放内存了,是不是很炸天. void func() { std::a...
2021-01-08 14:11:29 125 3
原创 Copy constructor vs assignment operator in C++
从现有对象创建新对象时,是Copy Constructor。 当已初始化的对象从另一个现有对象中分配了新值时,是Assignment Operator。当然,看到这句话,你还是不懂.下面看一下代码 #include<iostream> #include<stdio.h> using namespace std; class Test { public: Test() {} Test(const Test &t) { cout<&..
2021-01-08 11:50:01 199
dlib人脸关键点模型
2020-07-20
OpenCV之_HaarTraining资料
2014-04-01
我做车辆角点跟踪的主要文档
2014-03-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人