- 博客(30)
- 收藏
- 关注
转载 boost::condition
1.简介condition是一个简单的同步对象,用于使一个线程等待一个特定的条件成立(比如资源可用)。一个condition对象总是和一个mutex对象配合使用。mutex在交给condition对象的wait系列函数时,必须已经通过lock对象加上了锁。当线程陷入等待时,condtion对象将释放mutex上的锁,当wait返回时,mutex上的锁会重新加上,这一unlock/l
2015-04-08 17:38:15
618
转载 C++ Regex正则表达式
不会用C++的Regex是硬伤,下面的内容参考《C++程序设计原理与实践》~~~****************************************************************************************************正则表达式语法 正则表达式的特性分成很多种类,下面的内容是perl类型的Regex。======
2015-03-20 18:18:40
693
原创 大牛级博客
清风小阁 :http://blog.csdn.net/huang_xw/article/category/1209379胡健:http://www.cnblogs.com/hujian/天方:http://www.cnblogs.com/TianFang/category/78019.html
2015-01-14 18:18:30
390
原创 C++11 简单并发
#include int Print(string str){ cout << str << endl; return 100;}int main(){// future fu = async(Print,"ni hao");// future fu = async(bind(Print,"ni hao")); auto fu = async(Print,"ni hao");
2015-01-13 15:17:17
430
原创 std::ref
std::ref 用于包装按引用传递的值。std::cref 用于包装按const 引用传递的值。void f(int &n1,int &n2,const int& n3){ cout << "In : " << n1 << " " << n2 << " " << n3 << " " << endl; n1++; n2++;}int main(){ int n1 =
2015-01-13 15:09:13
717
原创 C++11 遍历容器
void Print(string str){ cout << str << endl;}void Print2(string str,const char* pre){ cout << pre << str << endl;}int main(){ //遍历vector vector vTmp; vTmp.push_back("abc"); vTmp.push_back
2015-01-13 13:14:12
422
转载 C++11 Lambda 表达式
转自:http://www.cnblogs.com/hujian/archive/2012/02/14/2350306.htmlclass CTest{public: CTest() : m_nData(20) { NULL; } void TestLambda() { vector vctTemp; vctTemp.push_back(1); vctTemp.p
2015-01-13 11:01:20
355
转载 C++11右值引用
转自: http://www.cnblogs.com/hujian/archive/2012/02/13/2348621.html
2015-01-08 16:28:10
370
原创 char* 比较运算
意外:char* 可以使用比较运算符直接进行比较。代码:char* data = "123";const char* data_c = "123";if(data == "123"){printf("data\n");}if(data_c {printf("data_c\n");}if(data == data_c){printf("==\n
2015-01-06 16:25:05
852
原创 boost::asio 相关
1、boost::asio::async_read 用于读取指定长度的数据,读完或出错才返回;socket.async_read_some读取到数据或出错就返回,不一定读完了整个包。如:boost::array g_buf;void handle_read(const boost::system::error_code &err,std::size_t bytes_transfer
2014-12-29 10:45:44
411
转载 C++11 std::move
std::move是一个用于提示优化的函数,过去的c++98中,由于无法将作为右值的临时变量从左值当中区别出来,所以程序运行时有大量临时变量白白的创建后又立刻销毁,其中又尤其是返回字符串std::string的函数存在最大的浪费。C++0x中加入了右值引用,和move函数。右值引用出现之前我们只能用const引用来关联临时对象(右值)(造孽的VS可以用非const引用关联临时对象,请忽略V
2014-12-26 11:34:30
513
转载 C++11 比较好的语法(三)
转自:http://www.cnblogs.com/TianFang/p/3306231.html随着Vsisual Studio 2013 RC版的放出,之前承诺的对C++ 11语法支持已经全部完成,本文是C++ 11中我喜欢的语法系列的最后一部分(一),(二)。非静态成员直接初始化在C++ 03的时候,非静态成员变量只能在对象的构造函数里初始化,例如:
2014-12-25 17:42:26
301
转载 C++11 中STL库新增内容
转自:http://www.cnblogs.com/TianFang/archive/2013/01/25/2876400.htmlC++ 11一个比较显著的变化是以前boost库中的一些函数被正式标准化合入到STL中了,本文就简单的介绍一下。引用包装器(Reference Wrapper)当模板函数参数为泛型类型的时候,无法推导出是传值还是传引用,默认情况下会使用传值
2014-12-25 17:39:58
434
转载 C++11 比较好的语法(二)
转自:http://www.cnblogs.com/TianFang/p/3163229.html之前在文章C++ 11中几个我比较喜欢的语法中介绍了几个我比较喜欢的C++语法,其中有些语法由于VC 11还不支持,无法跨平台,所以没有介绍。前几天VS 2013 Preview发布后,对C++ 11又有了一些支持,因此这里继续完成一下C++ 11语法系列:原生字符串(raw st
2014-12-25 17:22:01
361
转载 C++11 比较好的语法(一)
转自:http://www.cnblogs.com/TianFang/archive/2013/01/25/2876099.htmlC++11的标准已经确定,除了增加了不少库函数外,在语法方便也得到了许多增强。其中如下几个语法就是我比较喜欢的:自动类型推导auto现在c++终于在编译器级别支持类似C#的var关键字了,在c++里的关键字是auto,基本用法如下:
2014-12-25 17:15:30
310
转载 boost 字符串处理
转自:http://www.cnblogs.com/TianFang/archive/2013/02/04/2891538.htmlc++在stl库中提供了一个string类用以代替c语言的char*来实现字符串功能,不过stl的string只提供了一个连接字符串和查找的功能,其它的常用函数几乎一律没有,就连字符串替换都得自己来实现,和c#的字符串函数比起来简直弱爆了。bo
2014-12-25 16:25:06
491
转载 boost 时间格式化
利用boost来获取当前时间又方便快捷,还不用考虑跨平台的问题。1. 输出YYYYMMDD[cpp] view plaincopy#include #define BOOST_DATE_TIME_SOURCE std::string strTime = boost::gregorian::to_iso_strin
2014-12-23 15:35:24
379
转载 boost::shared_ptr
转自:http://blog.csdn.net/mmzsyx/article/details/80865291、shared_ptr介绍【1】是用于管理new动态分配对象的智能指针,可以被安全共享。【2】重载了 * 和 -> 操作符以模仿原始指针的行为,提供隐式bool类型转换以判断指针的有效性,get()可以得到原始指针,并且没有提供指针算术操作。【3】. 点操作符是对s
2014-12-22 18:37:02
866
原创 boost::signal
1、slot:函数(1)slot:void helloworld() { std::cout << "Hello, World!" << std::endl;}(2)使用:{ boost::signalsig; sig.connect(&helloworld); sig(); //发送信号,激活槽}2、slot:自定义
2014-12-16 14:46:25
397
转载 boost::format
boost::format重载了'%'操作符,通过多次调用'%'操作符就能将参数非常方便格式化成字符串,并实现了ATL::CString和C#中的string两者的格式化字符串功能。一、boost::format工作的方式 基本的语法,boost::format( format-string ) % arg1 % arg2 % ... % argN 下面的例
2014-12-15 18:52:42
500
原创 VC动态库
1、VS命令提示工具查看库:dumpbin -imports calldll.exe查看它的输入信息,可以看到它加载了***.dll dumpbin -exports dlltest.dll,列出导出函数 dumpbin /all XXX.lib > a.txt ,导出lib的函数到a.txt2、静态库与动态库区别(1)静态库(.lib):包含函数代码本身,在编译时
2014-12-15 15:33:05
460
原创 Win32多线程编程注意事项
1、线程退出(1)使用布尔型变量,如:volatile BOOL g_bThreadRun = TRUE;while(g_bThreadRun){ //处理逻辑}隐藏问题: 如果线程执行的时间较长,如循环中Sleep(1000); 这样会导致,执行 g_bThreadRun=FALSE; 后立即执行后面的函数,而不会等待线程结束。(2)设置布尔型变量为FA
2014-12-15 15:21:36
446
原创 Win7开发的VC2012程序在XP上无法运行
1、问题描述:Win7上使用VS2012编译的C++程序,在XP上无法运行,提示缺少msvcr110.dll等库。2、解决办法:安装VS2012 Update1包,更改项目属性:(1)配置属性--常规--平台工具集:Visual Studio 2012 - Windows XP (v110_xp)。(2)链接器--系统--子系统:控制台或窗口,所需的最低版本5.01(3
2014-12-15 11:40:51
1449
原创 VC_EXTRALEAN和WIN32_LEAN_AND_MEAN
1、为加速生成过程,VC++提供了VC_EXTRALEAN和WIN32_LEAN_AND_MEAN宏,通过排除一些不常用的API,减少Win32头文件的大小。注意,VC_EXTRALEAN只能用于MFC项目,而WIN32_LEAN_AND_MEAN可用于任何项目。2、socket系列API重定义
2014-12-15 11:35:59
1004
转载 boost库生成
1、boost库命名规则以 libboost_regex-vc71-mt-d-1_34.lib 为例:lib 前缀:除了Microsoft Windows之外,每一个Boost库的名字都以此字符串开始。在Windows上,只有普通的静态库使用lib前缀;导入库和DLL不使用。boost_regex 库名称:所有boost库名文件以boost_开头。-vc71 Tools
2014-12-15 10:30:36
849
原创 makefile简单用例
注:在makefile文件中,"#"后的内容是注释。========================================================1、最简单的例子# 目标文件名 : 此目标文件依赖的文件# 命令序列--------------------------------------------------------# 在这个例子里,其命令
2014-12-12 18:24:18
415
原创 nmake.exe
Microsoft Program Maintenance Utility,外号NMAKE,顾名思义,是用来管理程序的工具。其实说白了,就是一个解释程序。它处理一种叫做makefile的文件(以mak为后缀),解释里面的语句并执行相应的指令。
2014-12-12 17:55:05
729
原创 VC默认链接库冲突
在同一个项目中,所有的源文件必须链接相同的C运行时库。如果某一文件用了Multithreaded DLL版本,而其他文件用了Single-Threaded或者Multithreaded版本的库,也就是说用了不同的库,就会导致这个警告的出现。 总之,一句话,lib之间有冲突。需要删除导入的一些libs。 版 本类 型使用的library
2014-12-12 17:38:23
658
转载 link.exe(VC链接程序)常用参数
ALIGN(节对齐) /ALIGN[:number] 其中:number(对齐值)。 /ALIGN 选项指定程序线性地址空间中每一节的对齐方式。number 参数以字节为单位,并且必须是 2 的幂。默认值是 4K (4096)。如果对齐方式产生无效的图像,则链接器发出警告。 除非正在编写诸如设备驱动程序的应用程序,否则应不需要修改对齐方式。
2014-12-12 16:41:42
2116
转载 cl.exe(VC编译程序)参数大全
CL.exe 是控制 Microsoft C 和 C++ 编译器与链接器的 32 位工具。编译器产生通用对象文件格式 (COFF) 对象 (.obj) 文件。链接器产生可执行文件 (.exe) 或动态链接库文件 (DLL)。注意,所有编译器选项都区分大小写。若要编译但不链接,请使用 /c。使用 NMAKE 生成输出文件。使用 BSCMAKE 支持类浏览。 以下是一个
2014-12-12 16:29:58
1262
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人