- 浏览: 90654 次
- 性别:
- 来自: 北京
最新评论
-
zzsczz:
双方定时发握手消息 更可靠。。。。。。
TCP非正常断开-检测方法
文章列表
作者:Jeff Bogan
原文:http://www.codeproject.com/vcpp/stl/PracticalGuideStl.asp
翻译:Winter
1 介绍
对于当今所有C++程序员来说,STL(标准模板库的缩写)都是非常不错的技术。但我必须要提醒的是要想习惯使用有一定难度,例如,会有很陡峭的 ...
- 2009-05-17 16:04
- 浏览 977
- 评论(0)
作者:converse
原文链接:http://www.cppblog.com/converse/
RT。 堆的性质之类的不再这里阐述,写这个算法只为了更好的理解STL中的堆算法,如果看不懂STL中的算法也可以来参考这里给出的算法,因为是纯C的看起来会省去很多语言方面的细节。
同时里面还有一个STL中对应算法的测试以比较两者的效果。
/********************************************************************
created: 2007/3/18
filename: main.cpp
author: ...
- 2009-05-17 15:46
- 浏览 983
- 评论(0)
泛型编程让你编写完全一般化并可重复使用的算法,其效率与针对某特定数据类型而设计的算法相同。泛型编程的代表作品STL是一种高效、泛型、可交互操作的 软件组件。所谓泛型(Genericity),是指具有在多种数据类型上皆可操作的含意,与模板有些相似。STL巨大,而且可以扩充,它包含很多计算机基 本算法和数据结构,而且将算法与数据结构完全分离,其中算法是泛型的,不与任何特定数据结构或对象类型系在一起。STL以迭代器(Iterators)和 容器(Containers)为基础,是一种泛型算法(Generic Algorithms)库,容器的存在使这些算法有东西可以操作。STL包含各种泛型算法(algor ...
- 2009-05-17 15:37
- 浏览 1227
- 评论(0)
1、字符串->数值
#include <boost/lexical_cast.hpp>
#include <iostream>
int main()
{
using boost::lexical_cast;
int a = lexical_cast<int>("123");
double b = lexical_cast<double>("123.12");
std::cout<<a< ...
- 2009-05-17 15:23
- 浏览 1835
- 评论(0)
一。下载
boost库2008年3月底发布了1.35.0版本,包括了12个新的库和若干对于新库的修正。请参见http://www.boost.org/users/news/version_1_35_0来获取详细的更新信息。
最大的喜讯就是提供了对于Visual Studio 2008编译器的支持(1.34也可以,但 ...
- 2009-05-15 17:53
- 浏览 2057
- 评论(0)
要说C++库也不少了,虽然跟java比还是少了点。拔高一点来说,c++将来的出路可能就在标准库了,c++圈子里的那些牛人似早就意识到了这一点,也做了不少努力,之前的比如大名鼎鼎的STL,最近的比如boost。据说boost有可能被纳入未来的c++标准之中,因此也就很有必要先了解一番了。
其实开始接触boost是因为项目中需要用到异步通信,很自然就想了解下人家是怎么做的。考虑过java的那个NIO,还有ACE库,后来就看上了boost的asio,没有特别的理由,Java高手没人啊,ACE有点太笨重,当初认为boot还算可以。后来发现boost确实是个好东西,你可以把它当作工具库,呵呵,比较喜欢 ...
- 2009-05-15 17:49
- 浏览 1586
- 评论(0)
ACE与ASIO之间关于Socket编程的比较
转自:FREE MY SOUL
ACE是一个很成熟的中间件产品,为自适应通讯环境,但它过于宏大,一堆的设计模式,架构是一层又一层,对初学者来说,有点困难。
ASIO是基本Boost开发的异步IO库,封装了Socke ...
- 2009-05-15 14:14
- 浏览 2499
- 评论(0)
泛型编程
Bjarne: 如果你面对的问题既需要某些运行期决议(需要面向对象编程),又具有一些能够从编译期决议中获益的方面(泛型编程的用武之地)的话,那么你就需要将面向对象编程和泛型编程结合起来。例如,面向对象编程的经典例子 — 将一个保存了shape的容器中的所有元素都显示出来就属于这类问题。几十年前我第一次在Simula中看到过这个例子,后来直到遇到了泛型编程,我才看到它的改进实现。考虑以下代码:
void draw_all(vector<Shape*>& vs)
{
for (int i=0; i<vs.size(); ++i) vs[i]-> ...
- 2009-05-15 14:12
- 浏览 930
- 评论(0)
前言
永远记住,编写代码的宗旨在于简单明了,不要使用语言中的冷僻特性,耍小聪明,重要的是编写你理解的代码,理解你编写的代码,这样你可能会做的更好。
--- H ...
- 2009-05-15 13:59
- 浏览 1407
- 评论(0)
Vim里面显示TAB键
1、文件中有 TAB 键的时候,你是看不见的。要把它显示出来:
:set list
现在 TAB 键显示为 ^I,而 $显示在每行的结尾,以便你能找到可能会被你忽略的空白
字符在哪里。
2、方法1中这样做的一个缺点是在有很多 TAB 的时候看起来很丑。如果你使用一个有颜色的
终端,或者使用 GUI 模式,Vim 可以用高亮显示空格和TAB。 使用 'listchars' 选项:
:set listchars=tab:>-,trail:-
现在,TAB会被显示成 ">---" 而行尾多余的空白字符显示成 "-" ...
- 2009-04-30 11:31
- 浏览 8995
- 评论(0)
Vim的一些常用命令
三种状态
Command: 任何输入都会作为编辑命令,而不会出现在屏幕上,任何输入都引起立即反映
Insert: 任何输入的数据都置于编辑寄存器,按ESC,可跳回command方式
Escape: 以“:”或者“/”为前导的指令,出现在屏幕的最下一行,任何输入都被当成特别指令。
离开vi
:q! 离开vi,并放弃刚在缓冲区内编辑的内容。
:wq 将缓冲区内的资料写入磁盘中,并离开vi。
:x 同wq。
(注意—— :X 是文件加密,一定要与:x存盘退出相区别)
进入输入模式
a (append) 由游标之后加入资料。
A 由该行之末加入资料。
i (insert ...
- 2009-04-27 09:02
- 浏览 1852
- 评论(0)
boost库编译方法,留个记号,免得忘了。
Windows下:
bjam.exe --build-type=minimal --with-date_time --with-filesystem --with-program_options --with-regex --with-serialization --with-system --with-thread toolset=msvc-9.0 variant=release link=static threading=multi stage
Linux下:
./bjam --build-type=minimal --wi ...
- 2009-04-27 08:42
- 浏览 15987
- 评论(0)