C++
文章平均质量分 71
chenkent888
这个作者很懒,什么都没留下…
展开
-
编译使用boost库(win7+boost1.53+vs2012)
转载自:http://blog.csdn.net/zengraoli/article/details/88704461、下载boost库从http://www.boost.org上下载到目前最新的boost库,快速传送门:boost_1_53_0.zip,当然你也可以从http://sourceforge.net/projects/boost/files/boost-jam/这里得到源转载 2013-08-23 16:22:06 · 1510 阅读 · 0 评论 -
深入浅出之正则表达式(一)
前言: 半年前我对正则表达式产生了兴趣,在网上查找过不少资料,看过不少的教程,最后在使用一个正则表达式工具RegexBuddy时发现他的教程写的非常好,可以说是我目前见过最好的正则表达式教程。于是一直想把他翻译过来。这个愿望直到这个五一长假才得以实现,结果就有了这篇文章。关于本文的名字,使用“深入浅出”似乎已经太俗。但是通读原文以后,觉得只有用“深入浅出”才能准确的表达出该教程给我转载 2013-09-20 17:26:42 · 789 阅读 · 0 评论 -
内联函数与宏定义
用内联取代宏:1.内联可调试;2.可进行类型安全检查或自动类型转换;3.可访问成员变量。另外,定义在类声明中的成员函数自动转化为内联函数。文章(一)内联函数与宏定义 在C中,常用预处理语句#define来代替一个函数定义。例如: #define MAX(a,b) ((a)>(b)?(a):(b)) 该语句使得程序中每个出现M转载 2013-09-24 22:22:33 · 836 阅读 · 0 评论 -
关于c++的内联函数
(1)什么是内联函数?内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内。(2)为什么要引入内联函数?当然,引入内联函数的主要目的是:解决程序中函数调用的效率问题。另外,前面我们讲到了宏,里面有这么一个例子:#define ABS(x) ((x)>0? (x):-(x))当++i出现时,宏就会歪曲我们的意思,换句话说就是:宏的定义很容易产生二意性。转载 2013-09-24 22:16:19 · 553 阅读 · 0 评论 -
C++实现计算程序运行时间 高精度
程序改自http://zhidao.baidu.com/question/57378776.html其它参考http://www.vckbase.com/document/viewdoc/?id=1301 对于精确度要求更高的定时操作,应该使用QueryPerformanceFrequency()和 QueryPerformanceCounter()函数。这两个函数是仅供W转载 2013-10-11 20:18:48 · 1014 阅读 · 0 评论 -
OpenCV FileStorage类读写XML/YML文件
在OpenCV程序中,需要保存中间结果的时候常常会使用.xml / .yml文件,opencv2.0之前都是使用C风格的代码,当时读写XML文件分别使用函数cvLoad()和cvSave()。在2.0以后的OpenCV转为支持C++,这一举措大大减少了代码量以及编程时需要考虑的细节。 新版本的OpenCV的C++接口中,imwrite()和imread()只能保存整数数据,且转载 2013-10-12 10:04:28 · 1110 阅读 · 2 评论 -
C/C++中判断某一文件或目录是否存在
C/C++中判断某一文件或目录是否存在 1.C++很简单的一种办法:#include #include using namespace std;#define FILENAME "stat.dat"int main(){ fstream _file; _file.open(FILENAME,ios::in); if(!_file) { cout<<FILENAME<<"没有被创建"; } else转载 2013-10-23 19:40:09 · 605 阅读 · 0 评论 -
c++ try catch 问题
try{} catch(…){}以前都是用try{} catch(…){}来捕获C++中一些意想不到的异常, 今天看了Winhack的帖子才知道,这种方法在VC中其实是靠不住的。例如下面的代码:try{BYTE* pch ;pch = ( BYTE* )00001234 ; //给予一个非法地址*pch = 6 ; //对非法地址赋值,会造成Access Violation转载 2013-11-16 10:08:47 · 868 阅读 · 0 评论 -
VS2010点滴——不能将参数 1 从“const char [11]”转换为“LPCWSTR”
[cpp] view plaincopy#include"windows.h" #include"iostream" using namespace std; int main() { char Write[10],Read[10]; for(int i=0;i Write[i]=10+i转载 2013-11-17 00:02:34 · 908 阅读 · 0 评论 -
Python 与 C++ 的交互编程
基础知识编译语言和解释语言尽管现在很多编程技术都在交融,出现了不少带有编译系统的解释语言,和带有复杂运行时系统的编译语言,但通常我们还是可以比较明确的区分它们。在这个大前提下,Python和C++属于这个两类技术中比较极端的代表。编译时和运行时C++的强大之处在于高效的生成产品和强大复杂的编译系统。利用C++的语法,可以生成非常灵活强大的程序,而这其中大部分转载 2013-11-03 14:22:37 · 840 阅读 · 0 评论 -
详细解说 STL 排序(Sort)
作者Winter详细解说 STL 排序(Sort)0 前言: STL,为什么你必须掌握1 STL提供的Sort 算法1.1 所有sort算法介绍1.2 sort 中的比较函数1.3 sort 的稳定性1.4 全排序1.5 局部排序1.6 nth_element 指定元素排序1.7 partition 和stable_partition2 Sort 和容器3 选择合适转载 2013-11-04 15:36:03 · 569 阅读 · 0 评论 -
C++的XML编程经验――LIBXML2库使用指南
C++的XML编程经验――LIBXML2库使用指南写这篇文章的原因有如下几点:1)C++标准库中没有操作XML的方法,用C++操作XML文件必须熟悉一种函数库,LIBXML2是其中一种很优秀的XML库,而且它同时支持多种编程语言;2)LIBXML2库的Tutorial写得不太好,尤其是编码转换的部分,不适用于中文编码的转换;3)网上的大多数关于Libxml2的介绍仅仅是翻译了自带的资料,没转载 2013-11-08 00:18:58 · 1106 阅读 · 0 评论 -
CMAKE的使用
CMAKE的使用Version 1.02009-3-18一、 基本使用安装:下载二进制包后可直接解压使用从源码安装则执行命令:./bootstrap; make; make install——尝试执行bootstrap失败使用:cmake dir_path,生成工程文件或makefile文件二、 概念out-of-source build,与in转载 2013-11-08 08:35:41 · 724 阅读 · 0 评论 -
Armadillo 在Windows 环境下的配置
1、简介Armadillo C++ Library 是一种C++的线性代数库(矩阵数学)以取得良好的平衡速度与易用性。整数,浮点,而复杂的数字支持,以及一个子集,三角和统计功能。各种矩阵分解是通过 可选的集成 与LAPACK和Atlas图书馆。延迟评价方法,基于模板元编程,使用(在编译时)结合几个行动之一,并减少或消除需要临时量。2、配置过程1)设置环境变量变量名:Armadi原创 2013-11-07 22:30:56 · 2678 阅读 · 0 评论 -
决策树模型组合之随机森林与GBDT
版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gmail.com前言: 决策树这种算法有着很多良好的特性,比如说训练时间复杂度较低,预测的过程比较快速,模型容易展示(容易将得到的决策树做成图片展示出来)转载 2013-11-10 21:09:18 · 944 阅读 · 0 评论 -
法国自动化研究所SPArse稀疏编码优化工具包介绍
其实函数是使用c++语言编写的,使用mex函数得到matlab的函数接口在spams-matlab主文件夹下包含16个对象(包括文件夹和文件,11个文件夹和5个文件)下面逐一介绍各个文件夹和文件的作用:一:build解压完之后是空文件夹,在经过compile.m文件编译之后,产生编译以后的在该平台之下的二进制文件二:data该文件夹包含测试用的测试图像转载 2013-11-12 18:29:55 · 1303 阅读 · 0 评论 -
RAII与Pimpl
RAII是Bjarne Stroustrup教授用于解决资源分配而发明的技术,资源获取即初始化。RAII是C++的构造机制的直接使用,即利用构造函数分配资源,利用析构函数来回收资源。我们知道,在C/C++语言中,对动态分配的内存的处理必须十分谨慎。在没有RAII应用的情况下,如果在内存释放之前就离开指针的作用域,这时候几乎没机会去释放该内存,除非垃圾回收器对其管制,否则我们要面转载 2013-11-12 19:40:39 · 1254 阅读 · 0 评论 -
侯捷推荐的C++书单
●书籍是永远的良师益友过去十年中,有一件事最是奇特有趣:我於 1993 开始《无责任书评》专栏,介绍我所能够掌握的技术范围内的一些世界名着。这样的题材与文体,吸引了很多目光,也开创了某种先河。《无责任书评》夹杂对台湾电脑出版业的观点与评论,由於当时台湾电脑书的良窳程度极端不均(现在也是),初阶 滥而高阶贫血(现在也是),我以程序员的角度所给的评论显得尖锐不群。1998 年网际网转载 2013-09-17 12:03:28 · 2469 阅读 · 0 评论 -
Matlab与C++接口与混合编程讨论小结
本文结合SMTH上的Mathtools版大家的讨论和自己的一些使用心得,主要对 MIDEVA(Matcom)的使用方法作简单介绍。本文将版面上一些相关文章作了总结 并将精华区中dodoo所写的“用c编写mex程序”一文以及energy所写的“VC++中 使用MATLAB的C++数学库和MCC生成的程序”作为本文的第二章。希望大家能对这 个主题有一个全面的了解,同时也能进转载 2013-09-15 11:11:01 · 2827 阅读 · 1 评论 -
static_cast<>揭密
转载自:http://www.vckbase.com/index.php/wv/1365本文讨论static_cast。介绍大多程序员在学C++前都学过C,并且习惯于C风格(类型)转换。当写C++(程序)时,有时候我们在使用static_cast时可能会有点模糊。在本文中,我将说明static_cast泛型(Generic Types)01.floa转载 2013-08-24 08:13:34 · 671 阅读 · 0 评论 -
xmemory(348): error C4996: 'std::_Uninitialized_copy0': 的解决方法
我是在VS2012环境下,使用boost库中的函数时产生了如下的错误:xmemory(348): error C4996: 'std::_Uninitialized_copy0': Function call with parameters that may be unsafe ,经过查资料和不断探索,找到了一个勉强的解决方法:即,将_SCL_SECURE_NO_WARNINGS原创 2013-08-25 20:08:38 · 5213 阅读 · 0 评论 -
boost 中round和roundf函数的用法
round()和roundf()函数是我在hog3D源码中碰到的,编译的过程中总是报错,通过网上查找发现round()函数和roundf()函数都是C++ boost库中的函数,如果需要调用这两个函数,需要:注:我是在vs2012的环境下进行编译的,所以需要先下载boost库,然后对vs2012做相应的配置,具体步骤可参考:http://blog.csdn.net/chenkent888/ar原创 2013-08-25 16:45:48 · 7769 阅读 · 0 评论 -
c++中冒号(:)和双冒号(::)的用法
转载于:http://fengqing888.blog.163.com/blog/static/3301141620100623933512/1.冒号(:)用法(1)表示结构体内位域的定义(即该变量占几个bit空间)typedef struct _XXX{unsigned char a:4;unsigned char c;} ; XXX(2)构造函数后面转载 2013-08-26 16:37:04 · 737 阅读 · 0 评论 -
namespace用法
-------------------------------------------第1部分:为什么使用namespace-------------------------------------------namespace既“命名空间”,也称“名称空间” VS.NET中的各种语言使用的一种代码组织的形式 通过名称空间来分类,区别不同的代码功能 同时也是VS.NET中所有类的完全名称的转载 2013-08-26 19:45:11 · 2339 阅读 · 0 评论 -
C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast
一、两种旧风格(old-style)的强制转型(1)C 风格(C-style)强制转型如下: (T) exdivssion // 将 exdivssion 的类型强制转换为 T(2)函数风格(Function-style)强制转型使用这样的语法:T(exdivssion) // 将 exdivssion 的类型强制转换为 T 这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在转载 2013-08-27 14:25:55 · 536 阅读 · 0 评论 -
snprintf函数使用(Windows与Linux版本)
一、Linux版本int snprintf(char *restrict buf, size_t n, const char * restrict format, ...);(1)函数说明:最多从源串中拷贝 n - 1 个字符到目标串中,然后再在后面加一个 0 。所以如果目标串的大小为 n的话,将不会溢出。(2)函数返回值:若成功则返回欲写入的字符串长度,若出错则返回负值。转载 2013-08-31 12:22:49 · 1436 阅读 · 0 评论 -
C++项目中的extern "C" {}
引言在用C++的项目源码中,经常会不可避免的会看到下面的代码:?123456789#ifdef __cplusplusextern "C" {#endif /*...*/ #ifdef __cplusplus转载 2013-08-31 15:13:55 · 824 阅读 · 0 评论 -
C++中extern “C”含义深层探索
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不转载 2013-08-31 12:51:23 · 571 阅读 · 0 评论 -
全局变量、extern/static/const区别与联系
1. 编译单元(模块): 在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用gcc,makefile等工具在linux或者嵌 入式下做开发工作的话,那么你可能非常的理解编译与连接的区别!当在VC这样的开发转载 2013-08-31 21:23:39 · 639 阅读 · 0 评论 -
extern const的烦恼
最近写代码,想导一个const全局变量 ,于是在头文件中:extern const unsigned int MyVar;在实现文件中:const unsigned int MyVar = 10;可是在链接时,其它文件中对MyVar的引用都报了找不到符号的错误,检查了半天,发现去掉MyVar的const修饰就可以。百思不得其解,只能请google来帮忙,于是才发现:转载 2013-08-31 21:03:32 · 864 阅读 · 0 评论 -
multimap的删除问题
在STL(标准模板库)中经常会碰到要删除容器中部分元素的情况,在编码和测试过程中发现在STL中删除容器有很多陷阱,网上也有不少网友提到如何在STL中安全删除元素这些问题。map(multimap)容器为关联式容器,是编程中经常使用的容器,有键值(key)和实值(value),又称字典、映射表。你能看出以下代码有什么问题?例1:#pragma warning (d转载 2013-09-07 20:44:46 · 2051 阅读 · 0 评论 -
Long Long、__int64使用总结
前言: 在16位环境下,int/unsigned int 占16位,long/unsigned long占32位 在32位环境下,int占32位,unsigned int占16位,long/unsigned long占32位何时需要使用: long 和 int 范围是[-2^31,2^31),即-2147483648~2147483647,而unsigned范围是[0,2^3转载 2013-09-02 09:58:24 · 1286 阅读 · 0 评论 -
STD::list使用说明
STL 中的list 就是一 双向链表,可高效地进行插入删除元素。list不支持随机访问。所以没有 at(pos)和operator[]list成员说明constructor构造函数destructor析构函数operator=转载 2013-09-07 19:38:37 · 1086 阅读 · 0 评论 -
C++用new和不用new创建类对象区别
起初刚学C++时,很不习惯用new,后来看老外的程序,发现几乎都是使用new,想一想区别也不是太大,但是在大一点的项目设计中,有时候不使用new的确会带来很多问题。当然这都是跟new的用法有关的。new创建类对象,使用完后需使用delete删除,跟申请内存类似。所以,new有时候又不太适合,比如在频繁调用场合,使用局部new类对象就不是个好选择,使用全局类对象或一个经过初始化的全局类指针似乎更加高转载 2013-09-04 09:32:42 · 577 阅读 · 0 评论 -
堆和栈的区别
一、堆和栈的概念区别堆:是大家共有的空间,分全局堆和局部堆。全局堆就是所有没有分配的空间,局部堆就是用户分配的空间。堆在操作系统对进程 初始化的时候分配,运行过程中也可以向系统要额外的堆,但是记得用完了要还给操作系统,要不然就是内存泄漏。堆里面一般 放的是静态数据,比如static的数据和字符串常量等,资源加载后一般也放在堆里面。一个进程的所有线程共有这些堆 ,所以对堆的操作要考虑同步和互斥的转载 2013-09-04 09:36:06 · 500 阅读 · 0 评论 -
poselet 源码编译总结
1、源码下载地址:http://www.cs.berkeley.edu/~lbourdev/poselets/ code April 2013 release (C++)2、代码中使用到了jpeglib中的函数,所以需要下载jpeg源码并自己编译:http://blog.sina.com.cn/s/blog_546e0c1f0101db13.html3、将编译好的jpeg原创 2014-01-13 09:25:55 · 1655 阅读 · 2 评论