C++
文章平均质量分 69
winterTTr
喜欢计算机,对我来说,开发一个程序就像一门精致的心脏外科手术,不能缺少任何一道工序。
我喜欢用我的手去创造精品。
展开
-
C++类成员函数的指针
作者:winterTTr (原创,转载请注明作者) 这两天看到有人问道如何声明类成员函数指针的问题,以及如何使用。这里以一个小例子,简单演示一下声明和使用办法。不做过多的解释,代码应该可以说明一切。 #include using namespace std;class Node{public: Node(){} void print() {原创 2010-04-15 13:35:00 · 840 阅读 · 0 评论 -
已知前序遍历和中序遍历结果构造二叉树(非递归解法)
已知前序遍历和中序遍历结果构造二叉树(非递归解法)原创 2011-05-03 20:06:00 · 2977 阅读 · 0 评论 -
利用STL的最大堆获取TOPN
利用STL的最大堆获取TOPN原创 2010-07-09 17:12:00 · 2609 阅读 · 0 评论 -
STL 容器简介
STL 容器简介转载 2010-07-01 15:42:00 · 1353 阅读 · 0 评论 -
STL学习笔记---- iterator
作者:winterTTr(转载请注明) 资料来源:《C++ Standard Libarry》 有关iterator的分类和简单操作,就不介绍了,一般的资料都会有的。这里总写一些我们用的不多的,或者不太熟悉的方面。 一些有用的函数#include void advance (InputIterator& pos, Dist n)//将pos增加n原创 2010-05-07 14:34:00 · 633 阅读 · 0 评论 -
晒个binary search的算法代码
看到一篇文章,提到很难不通过测试,直接能够完成一个成功的binary search算法,总会有bug存在。所以,决定自己手动写一下,虽然STL中已经有了已有的binary_search,不过,介于是期望自己实现,所以还是尽量躲开一些过于方便的STL工具函数。 代码如下: template int my_binary_search( iterator_t begin , it原创 2010-05-06 14:10:00 · 923 阅读 · 0 评论 -
C++菱形继承内存深度探究
作者:winterTTr(转载请注明) 不得不承认,C++的内存分配,的确是个未解之谜。更何况,C++标准中,对内存分配的方式完全没有强制要求,只要厂商自行实现即可。于是,更引起了我对其一摊究竟之冲动,折腾了快2天的时间,虽然没有什么实质性了解,看来具体的实现等等考虑问题,还是交给《深入探索C++对象模型》这本书好了。不过,至少对现实中的C++对象有一个直观的认识。 首先,原创 2010-04-30 16:39:00 · 2676 阅读 · 0 评论 -
在member initialization list中调用member function同时throw exception,有趣的例子
#include #include using namespace std;class Member1{public: Member1( int m ) { cout << "Member1::Member1" << endl; } ~Member1() { cout << "Member1::~Member1" << endl; }};class原创 2010-04-29 17:17:00 · 638 阅读 · 0 评论 -
STL读取UNICODE文件并编码转换的小例子
作者:winterTTr(转载请注明)#include #include #include using namespace std;int main(){ fstream file; file.open( "D://1.txt" , ios_base::in | ios_base::binary ); if( !file ) {原创 2010-04-27 13:47:00 · 1325 阅读 · 0 评论 -
STL学习笔记 ---- 由set的声明所引发的自定义比较的实现方式
作者:winterTTr(转载请注明) 对于set这个STL容器来说,就实现来说,我了解到的版本,是通过RB-Tree的方式实现的,内部逻辑似乎是采用Tree结构的平行方式进行展开,换句话说也就是将Tree保存在类似vector这样的线性结构中,不过,这篇帖子并不在于讨论内部结构,而是具体使用中出现的自定义比较的几种方式。set的话,默认情况,可以不指定第二个模板参数,但是,原创 2010-04-23 11:17:00 · 1327 阅读 · 0 评论 -
初始化函数中的虚函数调用( C++ vs python )
代码+结果,不做解释当然,对于python没有virtual function一说,估计当作对比一个例子看看吧。 #include using namespace std;class base{public: virtual void foo() { cout << "base" << endl; } base() { foo() ;}};原创 2010-04-23 14:52:00 · 1641 阅读 · 1 评论 -
STL学习笔记----vector
作者:winterTTr(转载请注明) 资料来源:《The C++ Standard Library》 vector是STL中最简单,也是最常用的一个标准容器之一了。其实,他就是对动态数组的封装,然后对于insert等操作进行的时候,在空间不够的情况下,会自动进行空间扩充及内容拷贝等等。这里简单总结一下接口,然后说几点注意问题 size() vs capac原创 2010-04-22 13:27:00 · 696 阅读 · 0 评论 -
STL学习笔记 ---- 神秘的auto_ptr
作者:winterTTr(转载请注明) 资料来源:《STL标准库》 为什么说它神秘呢,那好吧,我可以换一个更直白的词语,那就是“陷阱重重”。对于不了解auto_ptr的人来说,使用它就是一种灾难,而避免这种灾难,就必须揭开它神秘的面纱,了解其内部运作机制。 为什么要出现auto_ptrvoid f(){ ClassA* ptr = new原创 2010-04-20 10:02:00 · 762 阅读 · 1 评论 -
STL学习笔记 ---- 工具类pair
作者:winterTTr (转载请注明) 资料来源:《STL标准库》 pair是一个STL中使用的很多的基础工具类,map和multimap中都是使用pair来管理他的元素的。pair这个结构,被定义在这个头文件中 namespace std { template struct pair { //type names原创 2010-04-19 13:54:00 · 1039 阅读 · 0 评论 -
STL学习笔记 ---- 异常
作者: winterTTr (转载请注明) 资料来源:《STL标准库》 标准异常类 为了语言支持而使用的异常类bad_alloc :在new失败的时候,被抛出(除非使用nothrow版本的new)bad_cast :在使用dynamic_cast转换“引用类型”失败的时候抛出bad_typeid:如果传给typeid操作原创 2010-04-19 11:25:00 · 947 阅读 · 0 评论 -
STL学习笔记----C++的新语言特性
作者:winterTTr ( 转载请注明 ) 资料来源:《STL标准库》 今天主要总结一下C++的新语言特性 1.模板基本上STL中的大部分都是使用模板来编写的,主语是为了便于多种类型的使用。对于模板本身,C++还有一些特别的支持无类型模板参数bitset fIags32; bitset flags50; 默认模板参数tem原创 2010-04-16 14:22:00 · 568 阅读 · 0 评论 -
一题多解 -- 循环填充二维数组
问题描述问题:有一个m*n的二维数组,从外到内按照顺时针填充,并将结果打印出来。据个例子: 3 * 4 的数组,填充结果为 1 2 3 4 10 11 12 5 9 8 7 6解题思路1我们可以来的直接点,既然题目要求我们顺时针填充,那么我们就这样把这个数组填充满就好了。遇到的问题是:如何找到下一个应该填充原创 2012-02-13 22:56:01 · 2201 阅读 · 0 评论