序(Foreword)C++社区正在发生着一些美妙的事情。尽管C++仍然是世界上使用最广泛的编程语言,它依旧在变得更加强大而且易用。不信么?容我慢慢道来。当前版本的标准C++是在1998年最终确定下来的,它为传统的过程式编程(proceduralprogramming)以及面向对象和泛型编程(gen...
分类:
编程语言 时间:
2015-01-31 01:41:09
阅读次数:
190
在C中字符串转换为数值,可以使用atoi()、atof()、atol()等,数值转换为字符串可以使用itoa()、sprintf()等,但itoa与编译器有关,并不是标准函数,而sprintf可能会不安全。
使用lexical_cast可以很容易地在数值与字符串之间转换,只需在模板参数中指定转换的目标类型即可。如 int x = lexical_cast("100");
long...
分类:
其他好文 时间:
2015-01-30 21:11:30
阅读次数:
263
简单来说内存池预先分配了一块大的内存空间,然后在其中使用某种算法高效快速的自定制内存分配。pool库包含四个组成部分,最简单的pool,分配类实例的object pool,单件内存池singleton_tool和用于标准库的pool_alloc.为了使用pool组件,需要包含头文件。
操作函数:pool的构造函数接受一个size_type类型的整数request_size,指示每次pool分配内存...
分类:
其他好文 时间:
2015-01-30 21:08:32
阅读次数:
250
boost.smart_ptr库提供了六种智能指针:scoped_ptr、scoped_array、shared_ptr、shared_array、week_ptr和intrusive_ptr。
说到智能指针,我们会想到c++98标准中的自动指针auto_ptr.auto_ptr获取指针所有权后,离开作用域时自动释放该指针指向的堆内存。也可以转移指针的所有权。
auto_ptr ap_a1(new...
分类:
其他好文 时间:
2015-01-30 21:08:29
阅读次数:
364
c++中定义一个类时,如果不明确定义拷贝构造函数和拷贝赋值操作符,编译器会为我们自动生成这两个函数如class TestClass
{
public:
TestClass(const TestClass&);
TestClass& operator=(const TestClass&);
};如何防止类的实例被拷贝呢?可以将拷贝构造函数和拷贝赋值操作符定义为privateclass TestC...
分类:
其他好文 时间:
2015-01-30 21:08:04
阅读次数:
205
shared_ptr与scoped_ptr都包装在堆上分配的动态对象,都重载了*和->操作符以模仿原始指针行为,但shared_ptr实现的是引用计数型的智能指针,当没有代码使用时计数为0,此时释放被包装的动态分配的内存。shared_ptr可以被自由地拷贝和赋值。shared_ptr可以安全地放到标准容器中。引用《boost程序库完全开发指南》中的话:“shared_ptr非常有价值、非常重要、...
分类:
其他好文 时间:
2015-01-30 21:06:47
阅读次数:
248
无论如何使用,都能感觉到使用boost.asio实现服务器,不仅是一件非常轻松的事,而且代码很漂亮,逻辑也相当清晰,这点上很不同于ACE。使用io_service作为处理工作的work pool,可以看到,就是通过io_service.post投递一个Handler到io_service的队列...
分类:
其他好文 时间:
2015-01-20 13:29:41
阅读次数:
389
boost库是一个开源免费的第三方库,它是一个非常优秀的库,是C++标准的最好实践之一,因此也经常被用于商业的开发。所以,如果你是搞C++的,还没有听过或用过boost,你就out了,想想自己是不是跟不上技术的步伐了,哈哈……...
分类:
其他好文 时间:
2015-01-18 11:52:28
阅读次数:
399
C++有一个强大的Boost,里面有好多功能是C++标准库所不支持的。看着Boost中那些强大的功能模板怎能不动心呢!下面我们就来看看如何在VS2010下使用Boost库。
系统:windows7
开发环境:Visual Studio 10
boost版本:boost_1_55_0...
在用boost库的时候遇到了一些挫折,本文记录下来方便大家参考:1....
分类:
编程语言 时间:
2015-01-13 10:33:05
阅读次数:
259