iniwf

风是温柔的,雨是伤心的,云是快乐的,月是多情的,爱是迷失的,恋是醉人的,情是难忘的,天是长久的,地是永恒的

最优秀的STL使用学习网站

November 14, 2005

C++ Connections 在拉斯维加斯召开年会


没想到C++ connections conference 在Las Vegas的Mandalay Bay酒店召开,那可是豪华赌场+豪华酒店啊,上次去Las Vegas的时候还留了好多拉斯维加斯照片

得到一份conference的CD,这里共享出来。里面有Scott Meyers(Effective C++/Effective STL的作者), Matt Austern(Generic Programming and the STL 的作者), Bjarne Stroustrup(C++之父)的演讲。不容错过。

令我出乎意料的是,这次会议大部分内容都是在介绍C++的标准库以及C++范型编程,以往很火的OOP内容已经少之又少。如果你看不懂这种风格的代码:

tr1::function < void(const record_set&) >  on_completion =
tr1::bind(tr1::mem_fn(&grid::display_data), this, _1);

你有可能快落伍了。

看看这些链接吧:
C++ Connectiions Conference CD
C++ Connection Home Page

由 winter 发表于 09:37 | 回复 (1009) | 引用 (281)

October 31, 2005

STL China 上新增两个主题

STLChina.org上新增两个栏目:
1 STL 英文技术文章。提供丰富的STL技术文章的英文原文
2 STL 资料下载中心 Winter收集了一些电子书,你可以任意下载。不过目前还在完善之中。你有好的电子书,也可以提供给Winter,然后share给大家。

由 winter 发表于 01:45 | 回复 (1081) | 引用 (266)

September 23, 2005

详细解说STL hash_map系列

STL 封装了许多复杂的数据结构,最典型的就是二叉树。因此,map得到许多应用,但有许多人并不知道还有hash_map, 或者hash_set 等。在某些时候,这些非标准的容器,说不定会帮你解决很多问题。

本文详细介绍了hash_map的使用以及和map的区别,对于初学者和希望深入研究STL的朋友都有所帮助,也是《详细解说STL系列》中很重要一部分。

以下是目录:
0 为什么需要hash_map
1 数据结构:hash_map原理
2 hash_map 使用
2.1 一个简单实例
2.2 hash_map 的hash函数
2.3 hash_map 的比较函数
2.4 hash_map 函数
3 相关hash容器
4 其他
4.1 hash_map和map的区别在哪里?
4.2 什么时候需要用hash_map,什么时候需要用map?
4.3 如何在hash_map中加入自己定义的类型?
4.4如何用hash_map替换程序中已有的map容器?
4.5为什么hash_map不是标准的?
4.6 有学习使用hash_map的建议吗?
5 参考文章:
详细查看: 详细解说STL hash_map系列

由 winter 发表于 01:08 | 回复 (729) | 引用 (566)

August 18, 2005

bind2st for_each 和 transform

今天STL论坛上有个朋友问关于bind2st使用的问题,开始以为很简单:

void print(int& a,const int b)
{
a+=b;
}

int main()
{
list<int> my_list;
.........
for_each(my_list.begin(),my_list.end(), bind2nd(print,3) );
}
目的是依次循环,每个节点加3
想通过bind2nd使函数的第二个值绑定为3
可是通过不了,这是错在哪
如果要达到目的的话,应该怎么改呢??

后来一调试,发现不是那么容易。你能发现问题在哪儿吗?

详细阅读 "bind2st for_each 和 transform"
由 winter 发表于 23:43 | 回复 (1192) | 引用 (298)

July 20, 2005

过度使用C++模板

本文来自STL中文站

大约每隔十年,都会出现一个编程新概念,宣布自己是以往概念的继承者。我们也再一次相信,从今往后软件比以前更可靠,更容易build,或者更有意思(没有人相信它会比以前更小或者更快)。在70年代,有结构编程;在80年代,开始了面向对象编程;从90年代中期,出现了范型编程(generic programming)。范型编程得名于其用模板而使代码重用的高效技术(范型类和范型函数)。

模板类和模板函数都是非常有用的工具。例如sqr()函数可以计算平方数,任何定义了乘法运算的数据类型(数字,矩阵)都适用。标准容器类(如 list)都是模板,这样对于每个新类型无需重写了,这正是使用旧版的C++时真正头疼的事情,因此我认为ISO的标准是个伟大的进步。然而,在这个过程中有些东西用得过头了。

详细查看:过度使用C++模板

由 winter 发表于 23:56 | 回复 (1103) | 引用 (724)

July 13, 2005

详细解说STL string

C++ 语言是个十分优秀的语言,但优秀并不表示完美。还是有许多人不愿意使用C或者C++,为什么?原因众多,其中之一就是C/C++的文本处理功能太麻烦,用起来很不方便。以前没有接触过其他语言时,每当别人这么说,我总是不屑一顾,认为他们根本就没有领会C++的精华,或者不太懂C++,现在我接触 perl, php, 和Shell脚本以后,开始理解了以前为什么有人说C++文本处理不方便了。

本文讲述了string在STL中的作用,详细介绍了STL string的用法,并讲解如何定义char_traits结构,最后提出了关于使用STL string的建议以及string类的所有函数列表。

详细查看: 详细解说STL string

由 winter 发表于 00:20 | 回复 (806) | 引用 (423)

July 02, 2005

详细解说 STL 排序(Sort)

本文来自STL中文站
对于程序员来说,数据结构是必修的一门课。从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来。幸运的是这些理论都已经比较成熟,算法也基本固定下来,不需要你再去花费心思去考虑其算法原理,也不用再去验证其准确性。不过,等你开始应用计算机语言来工作的时候,你会发现,面对不同的需求你需要一次又一次去用代码重复实现这些已经成熟的算法,而且会一次又一次陷入一些由于自己疏忽而产生的bug中。这时,你想找一种工具,已经帮你实现这些功能,你想怎么用就怎么用,同时不影响性能。你需要的就是STL, 标准模板库!

西方有句谚语:不要重复发明轮子!

STL几乎封装了所有的数据结构中的算法,从链表到队列,从向量到堆栈,对hash到二叉树,从搜索到排序,从增加到删除......可以说,如果你理解了STL,你会发现你已不用拘泥于算法本身,从而站在巨人的肩膀上去考虑更高级的应用。

详细查看 详细解说 STL 排序(Sort)

祝贺STLChina STL中文站开通

经过一个多月的忙碌,今天终于让STLChina --STL中文站开通了。之所以要建设这个网站,很大一部分原因在于在winterxy.com这个域名实在和Winter看起来太像了,本来只是想搞一个小的blog,后来发现有很多朋友支持,特别是STL论坛开通以后, 觉得自己能够为大家提供一个交流沟通的平台而感到高兴。

许多人做事情开始的时候热情很高,慢慢会淡漠,可能我也不例外。开始从Blog的安装,到TWiki安装,以及TWiki语法熟悉,以及BBS的问题,不过现在都差不多了,框架都已经搭好,我知道,更重要的是内容,如果能有丰富而且有用的内容,会有更多的人参与。我会希望更多的朋友一起参与,而且我也会坚持下去。希望大家继续支持,也希望和大家一起进步!

祝贺STL中文站正式开通!

由 winter 发表于 00:25 | 回复 (955) | 引用 (520)

June 09, 2005

共同翻译STL (STL wiki)

最近在组织几个朋友一起翻译. 翻译并不是一件容易的事情,虽然英文看懂了,但是不一定能翻译的合适。幸好并不是让我们出书,有点错误也没有关系。有兴趣的可以参看在论坛中的讨论:http://stlbbs.winterxy.com
由 winter 发表于 22:50 | 回复 (1179) | 引用 (593)

April 27, 2005

Effective STL 中文版电子书下载

非常感谢 抚琴舞剑(fingster@cs.hit.edu.cn)提供pdf电子书。做得非常精致,大家可以点击下载.

Effective STL 中文版电子书

详细阅读 "Effective STL 中文版电子书下载"
由 winter 发表于 13:59 | 回复 (1066) | 引用 (263)

April 21, 2005

提供c/c++ reference (STL参考)chm格式文件下载

非常感谢Binny提供的cppreference.chm文件,此文件包含了以下部分内容:
1 General C/C++
2 C++
3 Standard C Library
4 C++ Standard Template Library

详细阅读 "提供c/c++ reference (STL参考)chm格式文件下载"
由 winter 发表于 13:30 | 回复 (1086) | 引用 (543)

April 20, 2005

一个比较新的c++ STL参考网站

今天发现一个比较新的C++ STL 参考网站,我简要看了看,有不少例子,值得参考,如果哪位有兴趣可以下载链接后制作成chm格式就更好了, 做好了别忘了送我一份,谢了先:)

网站链接 C/C++ Reference
Binny已经提供了chm格式,非常感谢。参见 提供c/c++ reference (STL参考)chm格式文件下载

下面是一个讲Vector constructors的例子

详细阅读 "一个比较新的c++ STL参考网站"
由 winter 发表于 15:10 | 回复 (1196) | 引用 (518)

April 05, 2005

用STL string和标准库fstream实现多个文件比较

今天因为工作需要,花了半个多小时用STL中的string和标准库的fstream写了一个文件比较的小工具. 比用标准模板库STL实现文件比较那篇文章要简单得多,而且功能很强大。这里作个例子,供大家参考:)

 

功能描述:

  1. 任意多个文件(<255),按行比较。

  2.  若所有文件同一行相同,输入到一个公共的文件;

  3.  把每个文件得不同行输出到不同的文件;

  4.  过滤每行开头和结尾的空格和制表符'\t'。

详细阅读 "用STL string和标准库fstream实现多个文件比较"
由 winter 发表于 00:30 | 回复 (899) | 引用 (562)

April 03, 2005

最新开通STL交流论坛

非常感谢许多朋友的支持,最新开通STL交流论坛,以后大家可以在论坛中直接交流,论坛目前有STL新手上路STL学习交流,以后会有更多的栏目,欢迎大家灌水:).

由于我的MSN和QQ不会一直在线,因此许多朋友问我的问题以后可以直接在论坛中交流,我会尽快解答,另外也希望热心的大虾们申请成为斑竹,一起来营造最好的STL学习交流论坛。

论坛地址:STL交流论坛

由 winter 发表于 23:18 | 回复 (3816) | 引用 (526)

March 30, 2005

STL中仿函数(functors)、类成员和mem_fun的使用

众所周知,STL使用起来非常方便,其中仿函数(functor)扮演了一个非常重要的角色。灵活运用仿函数的使用对于发挥STL强大功能非常关键。本文详细介绍了如何使用mem_fun和mem_fun1来绑定类成员函数,使之成为functor

详细阅读 "STL中仿函数(functors)、类成员和mem_fun的使用"
由 winter 发表于 00:36 | 回复 (1055) | 引用 (318)

March 18, 2005

March 16, 2005

VC6下使用STL注意:不要让内存分配失败导致您的旧版 STL 应用程序崩溃

本文来源于MSDN中文站

大多数 C++ 开发人员在他们的代码中都广泛使用了标准模块库 (STL)。如果您是其中的一员,并且正在直接使用即装即用的 STL 和 Visual C++ 6.0,则在内存不足的条件下,您的应用程序就处于崩溃的高度危险的状况下。产生此问题的原因是,检查运算符 new 是否失败是一种非常少见的做法。更糟糕的是,当 new 确实失败时,响应不是标准的。有些语言编译器返回 NULL,而其他语言则引发异常。

详细阅读 "VC6下使用STL注意:不要让内存分配失败导致您的旧版 STL 应用程序崩溃"
由 winter 发表于 22:39 | 回复 (992) | 引用 (270)

March 13, 2005

C++ STL(标准模板库) 学习资源列表

STL以其独特的魅力得到越来越多的程序员钟爱,STL彻底封装复杂的数据结构,提供丰富灵活的程序接口,同时还能保证程序的运行效率。上次整理的STL技术文章列表得到许多朋友的捧场,这里整理更全面的STL学习资源列表,希望对朋友们有所帮助。

详细阅读 "C++ STL(标准模板库) 学习资源列表"
由 winter 发表于 16:55 | 回复 (1017) | 引用 (263)

March 04, 2005

使用STL流(stream)来简化C++“线程安全”日志记录

本文由周靖翻译
流是一种强大的数据处理抽象机制,它允许你调用泛型的读/写函数,不必关心数据从什么地方来、到什么地方去。使用流,同样的代码可从控制台、文件、套接字等地方读取数据。STL通常不是线程安全的,本文提出了如何在线程安全的方式下使用流的方案。

详细阅读 "使用STL流(stream)来简化C++“线程安全”日志记录"
由 winter 发表于 23:43 | 回复 (1045) | 引用 (528)

C++ STL中用vector 改进内存的再分配

本文说明了vector 容器使用时应该注意的内存分配问题,原理说的比较详细,对于初学者比较适用。

本文描述的是一种很常见的情况:当你在某个缓存中存储数据时,常常需要在运行时调整该缓存的大小,以便能容纳更多的数据。本文将讨论如何使用 STL 的 vector 进行内存的再分配。
详细阅读 "C++ STL中用vector 改进内存的再分配"

由 winter 发表于 22:48 | 回复 (1023) | 引用 (540)

posted on 2009-03-16 21:25 iniwf 阅读(1559) 评论(0)  编辑 收藏 引用 所属分类: STL


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

常用链接

留言簿(2)

随笔分类

随笔档案

收藏夹

IT技术

积分与排名

最新评论

阅读排行榜

评论排行榜