C++
文章平均质量分 77
demystify
积跬步以至千里;聚小流以成江海
展开
-
Boost练习1——时间和日期1
概述: Boost库 实现对时间和日期的处理,通过chrono、timer和data_timer库;一、timer库1、当前状态 Boost1.48版以后的timer库由两个组件组成:早期的timer(V1)和新的cpu_timer(V2); 早期的timer(V1),使用的是标准c/c++接口,因为计时精度不够等原因已经被声明为废弃(...原创 2014-12-23 13:08:37 · 975 阅读 · 0 评论 -
C++11学习笔记4——简化代码书写
C++11中的一些新特性,用来简化代码书写,提升代码效率。1、右尖括号 > 的改进 在C++98中,编译器会优先将 >> 解析为右移符号,因此,如果在实例化模板时出现连续两个 在C++11中,上述问题不再存在,C++11标准要求编译器智能地去判断哪些情况下 >> 不是右移符号。例如:template class X{};template class Y{}原创 2016-01-28 22:37:13 · 714 阅读 · 0 评论 -
c++11学习笔记1——c++11介绍
一、什么是C++11/C++0x C++0x是WG21计划取代C++98/03的新标准代号,C++11是最终成为新标准的标准代号。 c++标准委员会 WG21,在2011年发布c++11标准;C语言标准委员会 WG14,在2011年发布c11标准。二、C++11的整体设计目标 * 使得C++成为更好的适用于系统开发及库开发的语言;原创 2016-01-05 20:26:58 · 603 阅读 · 0 评论 -
OpenGL入门3——填充区、像素阵列、字符
1、原创 2014-11-09 16:22:10 · 3599 阅读 · 0 评论 -
c++11学习笔记3——通过更通用的方法实现新特性
1\原创 2016-01-22 15:58:03 · 1788 阅读 · 4 评论 -
轻松学习正则表达式
转自:http://www.cnblogs.com/sxwgf/archive/2011/11/17/2252076.html继续把我在个人博客上新翻译的文章投递到博客园来,这次是有关正则表达式的,很基础,主要是让读者把握住正则表达式中的3种括号的用法,用这3种括号几乎可以涵盖所有的正则式。写在最前面前两天我从CodeProject上翻译了一篇关于Javascript的文章《Javas转载 2015-12-01 18:01:32 · 495 阅读 · 0 评论 -
正则表达式基本语法
转自:http://www.cnblogs.com/light169/archive/2006/10/18/532347.html正则表达式基本语法1.正则表达式基本语法两个特殊的符号'^'和'$'。他们的作用是分别指出一个字符串的开始和结束。例子如下:"^The":表示所有以"The"开始的字符串("There","The cat"等);"of despair$"转载 2015-12-01 17:31:07 · 422 阅读 · 0 评论 -
Boost库的Windows下安装
1、下载http://www.boost.org选择自己需要的版本2、VS2010Boost库编译 首先,找到根目录下的bootstrap.bat文件,运行该批处理文件,会在当前目录下生成b2.exe和bjam.exe文件; 3、VS2010环境配置: 注意:为了要让VS 所有项目都能包含指定的include目录,打开一个功能,必须通过“...转载 2014-12-14 22:00:11 · 1088 阅读 · 1 评论 -
宏定义中#号的作用
1.#的作用是,对这个变量替换后,再加双引号引起来,例如#define A(a) #a,那么有A(10) "10"对空格的处理a. 忽略传入参数名前面和后面的空格。如:str=example1( abc ); 将会被扩展成 str="abc";b. 当传入参数名间存在空格时,编译器将会自动连接各个子字符串,用每个子字符串中只以一个空格连接,忽略其中多于一个的空格。如:st转载 2015-08-28 11:40:25 · 693 阅读 · 0 评论 -
C++类和接口的设计原则探讨
C++类和接口的设计原则探讨转自:http://www.warting.com/program/201208/53517.html我这篇文章的主旨是介绍一部分类和接口的高质量设计的准则。这些准则不但应该保证设计并且实现的类或者接口本身有高质量代码,而且更重要的是在工业领域应该尽可能的使代码的更新和维护不影响客户的活动,主要也就是保持二进制代码兼容(binary compatib转载 2015-04-28 15:23:06 · 664 阅读 · 0 评论 -
C++中抽象类和接口类的区别
转自:http://blog.csdn.net/qq1987924/article/details/7776791Bill Venners:我在1991至1996这5年间,几乎一直仅仅使用C++编程。在那时,我认为多重继承唯一目的就是让我能够从多个基类中继承它们各自的数据和函数 — 不管是虚拟函数还是非虚拟函数。那时候,我和我使用C++的同事几乎从未想过可以使用一种不含任何数据转载 2015-04-28 15:02:34 · 443 阅读 · 0 评论 -
C++11 线程池
转自:http://blog.csdn.net/tujiaw/article/details/8245130windows系统中,需要vs2012才支持。1.线程的创建C++11线程类std::thread,头文件include 首先,看一个最简单的例子:[cpp] view plain copy void my_th转载 2016-01-29 16:09:07 · 473 阅读 · 0 评论 -
扩展Boost库对tbb::concurrent_hash_map的序列化支持
工作中用到了tbb::concurrent_hash_map,但是同时用到了boost的serialize,boost没有提供对tbb::concurrent_hash_map的序列化支持,因此自己参考boost对stl中hash_map的实现,实现了使用boost库序列化tbb::concurrent_hash_map。本人水平有限,boost中hash_map序列化相关代码未完全看透,下面代码原创 2016-01-29 16:40:05 · 1973 阅读 · 0 评论 -
Boost练习2——时间和日期2
2、处理时间date_time库提供微秒级别的时间系统,但如果需要,它最高可以达到纳秒级别的精确度。使用date_time时间功能需要以下头文件,同时与处理日期类似,需要编译date_time库:#include < boost/date_time/posix_time/posix_time.hpp > using namespace boost::pos...原创 2015-01-02 20:45:40 · 1013 阅读 · 0 评论 -
Boost练习3——内存管理之智能指针
一、smart_ptr库概述new、delete以及指针的不恰当运用是c++中造成资源获取、释放问题的根源,智能指针可以在退出作用域时,不管是正常流程离开或是因异常离开,总调用delete来析构在堆上动态分配的对象。boost.smart_ptr库提供了六种智能指针,shared_ptr、weak_ptr、scoped_ptr、scoped_array、shared_array、intru...原创 2015-01-17 16:30:24 · 596 阅读 · 0 评论 -
Boost练习4——内存管理之内存池
一、概述boost.pool库基于简单分隔存储思想实现了一个快速、紧凑的内存池库,不仅能够管理大量的对象,还可以被用作STL的内存分配器。某种程度上讲,它近似于一个小型的垃圾回收机制,在需要大量分配/释放小对象时很有效率,而且完全不需要考虑delete。pool库包含四个组成部分:最简单的pool、分配类实例的object_pool、单例内存池singleton_pool和可用于标准库的p...原创 2015-01-18 14:58:37 · 1250 阅读 · 0 评论 -
SVN上传文件注意事项-------------------养成良好的项目文件上传习惯
转自:http://blog.csdn.net/wjeson/article/details/9768895原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://ticktick.blog.51cto.com/823160/751582 项目组的学弟经常把一些.obj文件和debug目录上传到svn,这个转载 2017-03-06 18:34:11 · 2052 阅读 · 0 评论 -
function-style conversion to builtin type takes only one argument
今天同事遇到一个问题:error C2564:‘xxxx’:a function-style conversion to a built-in type can only take one argument之前没有遇到过,于是到网上查了一下,发现如下文章的error场景与他的十分类似:http://forums.codeguru.com/showthread.php?327586-C-Ne原创 2016-10-20 14:15:06 · 2475 阅读 · 0 评论 -
使用std::string 通过dll接口传递时,应该注意的问题
问题描述: 在一个lib库中用到了另外一个库的dll,lib库的运行时库是“多线程DLL(/MD)”,(属性 C/C++ ->代码生成->运行库),dll工程使用的运行库是“多线程调试DLL(/MDd)”。导致向dll的接口传递std::string参数时报错。解决方法: 将lib项目的运行库改为“多线程调试DLL(/MDd)”.原因分析:原创 2016-01-08 13:31:44 · 8614 阅读 · 0 评论 -
C++中重载、重写(覆盖)和隐藏的区别实例分析
转自:http://www.jb51.net/article/54225.htm本文实例讲述了C++中重载、重写(覆盖)和隐藏的区别,对于C++面向对象程序设计来说是非常重要的概念。具体分析如下:1.重载:重载从overload翻译过来,是指同一可访问区内被声明的几个具有不同参数列(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型。转载 2016-07-11 16:55:14 · 399 阅读 · 0 评论 -
C++ 虚函数表解析
转自:http://blog.csdn.net/haoel/article/details/1948051/C++ 虚函数表解析 陈皓http://blog.csdn.net/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针转载 2015-01-07 20:20:19 · 341 阅读 · 0 评论 -
C++11学习笔记5——提高类型安全
1、强类型枚举 C++98中,枚举enum是非强作用域类型,enum的成员名字都是全局可见的。另外,由于C中枚举被设计为常量数值的“别名”的本性,枚举的成员总是可以被隐式地转换为整型。很多时候,这也是不安全的。 C++11中引入了强类型枚举(strong-typed enum),也就是将枚举封装成“枚举类”。声明强类型枚举的方法:在enum后加上关键字原创 2016-01-30 17:28:11 · 769 阅读 · 0 评论 -
c++11学习笔记2——稳定性和兼容性
一、与C99保持兼容1、预定义宏2、__func__宏 __func__宏的功能是返回所在函数的名字。事实上,按照标准定义,编译器会隐式地在函数的定义之后定义__func__标识符。例如const char* hello(){ return __func__;}其实际的含义等同于如下实现const char*hello(){原创 2016-01-13 20:15:40 · 577 阅读 · 0 评论 -
C++实现代理(delegate)
记不清出处了,实现代码是别人的,自己整理的//delegate.h/*!@file@author Albert Semenov@date 11/2007@module*//*This file is part of MyGUI.MyGUI is free software: you can redistribute it and/or modifyit under原创 2015-05-08 20:56:42 · 1563 阅读 · 0 评论 -
tinyxml读取中文时显示乱码的解决方法
1、tinyxml解析器是一个很好用的,乱码是由于GB2312与UTF8之间转换不当造成的,tinyxml在处理UTF8本身没有问题。2、网上很多人提供的方法是进行GB2312与UTF8之间的转换参看:http://blog.sina.com.cn/s/blog_472a9f0c01019eem.html经测试时有效的转换代码为:#include #define U (原创 2015-04-27 21:32:44 · 8293 阅读 · 0 评论 -
c++编译器会为类添加那些成员函数
转自:http://xingyunbaijunwei.blog.163.com/blog/static/76538067201232483141428/C++编译器会为类添加哪些成员函数 一个空的class在C++编译器处理过后就不再为空,编译器会自动地为我们声明一些member function,如果你写 class Empty{}; 就相当于: class转载 2015-01-19 21:53:04 · 706 阅读 · 0 评论 -
VC++对象模型
今天在网上看到了一篇写得非常好的文章,是有关c++类继承内存布局的。看了之后获益良多,现在转在我自己的博客里面,作为以后复习之用。——谈VC++对象模型(美)简.格雷程化 译 译者前言 一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细 节。对于使用VC++的程序员来说,还应该了解一些VC++对于C++的诠释。 Inside the C++ Objec转载 2014-06-04 23:15:17 · 528 阅读 · 0 评论 -
CppUnit的安装及使用指南
转自:http://wenku.baidu.com/view/a0a5867f27284b73f242508a.html转载 2014-05-11 00:28:47 · 5138 阅读 · 0 评论 -
PIMPL机制
总结:*PIMPL机制使类(目标类)的实现私用化,来降低编译依赖,提高重编译速度,保持类接口稳定性。*PIMPL机制的实施方法是:在(类的头文件)声明目标类时,在类中添加私有成员:一个内部类(实现类)的指针,在目标类的实现文件(.cpp)中定义该内部类,并通过该内部类实现目标类的所有方法。以此将目标类头文件与目标类的实现隔离。(当除了接口改变外,目标类的内部实现改变,不会引起头文件的改动)。转载 2014-01-19 23:50:08 · 723 阅读 · 0 评论 -
iostream 与afx.h的冲突问题
测试程序1:#include #include using namespace std;int main(int argc, char** argv){ //定义空字符串 CString str; cout return 0;}编译时报错:Linking...nafxcwd.lib(afxmem.obj) : error LNK2005: "vo原创 2013-12-26 17:18:49 · 905 阅读 · 0 评论 -
C/C++头文件一览
转自:http://blog.csdn.net/augusdi/article/details/5642151C库头文件#include //设定插入点#include //字符处理#include //定义错误码#include //浮点数处理#include //对应各种运算符的宏#include //定转载 2013-12-26 15:35:48 · 698 阅读 · 0 评论 -
在VC6.0中使用stl在Debug模式下编译导致的warning
前段时间使用VC6中STRING,VECTOR时DEBUG模式出现的警告,大概判断应该是调试时一些类调用后导致名字过长,超过了255个字符,产生,今天网上找了下,问题是因为VC6对STL的一些不完全支持造成,手工屏蔽就可以。方法为在源文件头部加入一下预编译代码#ifdef WIN32#pragma warning (disable: 4514 4786)#endif问题转载 2014-07-01 20:28:06 · 779 阅读 · 0 评论 -
c++学习 定位new表达式
转自:http://www.cnblogs.com/weiweiqiao99/archive/2012/06/16/2545710.htmlc++学习 定位new表达式在cpp中,new主要有3种用法:实例化一个对象;实例化一个数组;定位new表达式。在这里主要讨论第三种用法,定位new表达式。定位new表达式,就是在内存中new一块地址,然后根据程序的需要,将大小适合的实例对转载 2015-01-18 14:15:00 · 545 阅读 · 0 评论 -
C++ 对象的内存布局(上)
转自:http://blog.csdn.net/haoel/article/details/3081328C++ 对象的内存布局(上) 陈皓http://blog.csdn.net/haoel 点击这里查看下篇>>>前言 07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的转载 2015-01-07 20:49:45 · 340 阅读 · 0 评论 -
C++ 对象的内存布局(下)
转自:http://blog.csdn.net/haoel/article/details/3081385C++ 对象的内存布局(下) 陈皓http://blog.csdn.net/haoel 重复继承 下面我们再来看看,发生重复继承的情况。所谓重复继承,也就是某个基类被间接地重复继承了多次。 下图是一个继承图,我们重载了父类的f()函数。转载 2015-01-07 20:57:03 · 365 阅读 · 0 评论 -
STL——顺序容器使用总结
1、顺序容器的定义原创 2014-06-05 20:14:05 · 980 阅读 · 0 评论 -
STL—— 关联容器
1、关联容器与顺序容器的本质区别 关联容器通过原创 2014-07-05 17:02:21 · 519 阅读 · 0 评论 -
log4cpp应用手册
转自:http://blog.csdn.net/jq0123/article/details/10426171、转载 2014-06-01 16:36:47 · 919 阅读 · 0 评论 -
理解_stdcal 与_cdecl
我们知道在进行函数调用时,有几种调用方法,分为C式,Pascal式。在C和C++中C式调用是缺省的,除非特殊声明。二者是有区别的,下面我们用实例说明一下: 1. __cdecl :C和C++缺省调用方式 例子: void Input( int &m,int &n);/*相当于void __cdecl Input(int &m,int &n);*/ 以下是转载 2013-12-08 22:07:49 · 1393 阅读 · 0 评论