- 博客(12)
- 收藏
- 关注
原创 也谈C++
说C++之前先说一下C语言。很多人说C语言简单,其实C语言一点都不简单。看着只有30几条基本语法,好像一个本科生学一星期就能上手了,但是要能用起来——注意这个用词,“用起来”——难死了。什么叫“用起来”?用起来是形成生产力,不是笨拙地打开IDE,像元谋人摆弄一柄石斧一样创建一个工程,然后打印一句“Hello world”,或者说出一行“1,2,3,4,5”。这不叫“用起来”。用起来是在山雨欲来之时,你能掏出你的C语言,如同一个胸有成竹的战将拿出自己得意的兵器,你是要冲锋陷阵、奋勇杀敌的,你手里的家伙,应该.
2021-09-08 21:23:31 92
原创 【实验室:DLT】DLT算法的易错之处
DLT算法的基本说明如下:DLT+牛顿法基本思路:通过DLT法求出初值,再用牛顿法迭代求解。 DLT法的思路:摄像机矩阵P是3*4的矩阵,共12个参数。如果不考虑12个参数之间的关系,认为它们是相互独立的,那么sPX = x就是一个线性方程(需对X和x进行归一化,使得点坐标中心在原点且到原点的距离是sqrt(2))。其中s是尺度因子。将该方程消去s可以得到形
2015-12-22 11:17:49 6912
原创 【C++】剑指Offer上的题目1-9
// test_little_0714.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include "time.h"using namespace std;int main(){ return 0;}/*//斐波那契数列的两种方法,非递归的效率要高很多long long F
2015-07-20 11:36:52 404
转载 【C++】修改VS2013的默认堆栈大小
在解释原因前我们先看一下一个由C/C++编译的程序占用的内存分为几个部分:1、栈区(stack segment):由编译器自动分配释放,存放函数的参数的值,局部变量的值等。在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的,在WINDOWS下,栈的大小是2M(也有的是1M,总之是一个编译时就确定的常数),如果申请
2015-07-20 10:14:11 11846 1
原创 【MFC】如何使编辑框自动滚动到最后一行,就像QQ那样?
假设编辑框对应的变量是CString的str_rec,则UpdateData(FALSE);((CEdit*)GetDlgItem(IDC_EDIT))->SetSel(str_rec.GetLength(), str_rec.GetLength());可实现编辑框的自动滚动。但是这样是每次都对编辑框全部进行刷新,效率较低。如果文本过长可用以下方式:CStr
2015-05-19 15:37:28 1927
原创 【C++】智能指针的一个典型应用
智能指针最常用的地方是函数之间传递数据。unique_ptr Foo(){ unique_ptr p(new int[MAXVAL]); //这里可以对p进行操作 return p;}int* Foo(){ int* p = new int[MAXVAL]; //这里可以对p进行操作 return p;}比较上面两个函数。第二个函数在调用之后需要由调用者delete,
2015-04-16 16:44:01 469
原创 【MFC】头文件内的函数重定义问题
在修改界面程序的时候,需要用到两个函数:GetImgRect和CountDirectory,但是这两个函数不是任何一个类的成员函数。为了保证在所有文件中都可以用这两个函数,将其写入声明数据结构的头文件中。但是这样会造成重定义的错误。解决方法很简单:将函数声明为static即可。原理是什么呢?经过查找发现,静态函数是指在程序运行过程中不发生变化的函数。而非静态函数的大小、存储位置等都是动态分
2015-04-14 15:39:46 1177
原创 【MFC】CString的一点tips
CString是一种非常难用的数据结构,因为和标准库的string非常类似又有很多区别,所以在使用的时候很易错。这里就简单总结一下编程中遇到的关于CString的常见问题——1.类型转换CString与其他类型的转化非常常见。其中比较关键的是CString -> char* CString str; char* str2=str.GetBuffer(str.GetLe
2015-04-13 18:41:30 294
原创 【MFC】MFC中选取文件与文件夹,获得文件个数
选择文件CString BootOpenDialog() //返回选择的文件名称{ CString strFile = _T(""); CFileDialog dlgFile(TRUE, NULL, NULL, OFN_HIDEREADONLY, _T("Describe Files (*.cfg)|*.cfg|All Files (*.*)|*.*||"), N
2015-04-13 16:14:39 1126
原创 【MFC】MFC设置radio button互斥
Group选false 要想分组互斥的话每一组的第一个选Group true设定每组第一个RadioButton的Group属性为TRUE,分组完成,即从当前设置Group属性为TRUE的RadioButton开始直到碰到下一个选上Group属性的RadioButton的前一个RadioButton为一个组。
2015-04-13 16:12:09 1655
原创 【编程练习】水仙花数
非常简单的一个程序,但是细节的地方还是要仔细考虑,比如n>=0,要包含=0。#include "stdafx.h"#include #include using namespace std;int pow(int m,int n){ if (n == 0) return 1; else return pow(m, n-1)*m;}void main(){
2015-04-13 16:06:27 583
原创 【实验室:三维重构】已知三维点坐标和对应点图像坐标,求摄像机矩阵P
实验室三维重构的一个步骤:已知三维点坐标和对应点图像坐标,求摄像机矩阵P算法描述在《计算机视觉中的多视图几何》P123归一化后用DLT求初值。方法是将3*4的矩阵P改写为12*1矩阵(直接每行转置后竖着排列起来)。function P3=newtonGetP3(x1,y1,z1,pt3,K)XYZ=[x1';y1';z1';ones(1,size(x
2015-04-13 15:48:11 2499 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人