自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

RO_wsy的专栏

每天进步一点点

  • 博客(23)
  • 资源 (3)
  • 收藏
  • 关注

原创 细说C++类型转换操作符

C++语言虽然兼容C,也支持C语言的类型转换用法,就是将类型用圆括号括起来,这种转换可视性比较差,难以跟踪错误的转换。C++提供了命名的强制转换操作符,毕竟转换有时是不安全的,所以使用命名转换操作符可以根据所使用的转换操作符可以判断风险级别。下面我们就来看看C++提供的四种命名的强制转换操作符的具体功能和用法。1.const_cast2.static_cast3.reinterpr

2012-06-30 07:52:27 1596 1

原创 c++预处理器定义的四个有用的常量

预处理器为我们定义了四个有用的常量,使用这四个常量可以在错误消息中提供更多的信息,他们分别是:__FILE__  文件名__LINE__ 当前行号__TIME__ 文件被编译的时间__DATE__ 文件被编译的日期例如,我们可以使用如下小例子看看这几个常量的用法,功能是判断输入的单词是否小于定义的最小长度,如小于则输出错误信息,代码如下:#include #inclu

2012-06-29 10:19:19 2710

原创 c++输出缓冲区刷新

在c++中,io操作都是有io对象来实现的,每个io对象又管理一个缓冲区,用于存储程序读写的数据。只有缓冲区被刷新的时候缓冲区中的内容才会写入真实的文件或输出设备上。那么,什么情况下会刷新输出缓冲区呢,有如下五种情况:1.程序正常结束。作为main返回工作的一部分,将清空所有的输出缓冲区。2.在一些不确定的时候,缓冲区可能已经满了,在这种情况下,缓冲区将会在写下一个值之前刷新。

2012-06-29 09:46:21 5806

原创 C++ string类型详解

string是非常强大的类型,很好的封装了字符串的操作,有些时候我们可以把string当做字符的容器,string也支持大多数容器操作,下面就列出string类型所支持的所有操作,本文并不是为了讲解string的用法和应用,而是希望作为string类型的参考文档,每个函数皆在注释后有详细说明,需要用时查阅即可。string操作如下:构造函数:    string();//空串

2012-06-29 08:26:14 6372 4

原创 写程序要疯的时候看看这个

写程序虽然是广大程序员们的爱好,但是一直写程序也是会疯掉的,从网上找到些幽默的段子与大家共享,缓解一下,哈哈一、程序员方阵同学们,现在向我们走来的是程序员方阵!他们穿着拖鞋,披着毛巾,左手拿着键盘,右手举着鼠标,腋下夹着USB转换器。他们因睡眠不足而显得精神不振,喊着微弱的口号走过主席台。主席问候:程序员们辛苦了!程序员方队异口同声地答道:Hello World!二、真正的

2012-06-28 21:03:30 2662 7

原创 创业时代的七堂必修课

今天又翻了翻很久前读的一本书,叫做《水煮三国》,当时读的时候就一马平川的过了,也没太多的思考,今天又重温一下,发现本书也是很值得回味的。虽然书名叫三国,但是其实和三国没有太大关系,只是借用了其中的人物谈论管理的事情。虽然不一定人人都做管理者,但是对管理有些了解也是不错的,一方面扩展自己的知识,增长见识。另一方面也对在职场交际和沟通有帮助。总之,学习是没有错误的,庄子说过:吾生也有涯,而知也无涯。虽

2012-06-28 17:47:38 3051 5

原创 STL容器之multimap和multiset

map和set容器中,一个键只对应一个实例。而在multimap和multiset中,一个键可以对应多个实例,例如每个人都有一个电话联系人列表,列表中肯定不止一个人。除了不能对multimap中元素调用下表操作符之外,multimap和multiset提供的操作与map和set相同。但是因multimap和multiset是一个键对应多个元素,所有对应操作有一些改变,对于multima

2012-06-28 07:46:21 3705 1

原创 STL容器之set

map中存放的是键值对,而set中存放的只是键的集合,所以set中没有mapped_type类型,value_type也是不pair类型,而是与容器中存放元素的类型相同。set的操作与大部分map操作相同,但是不支持下标操作。set提供的操作如下:begin()返回指向第一个元素的迭代器clear()清除所有元素count()返回某个值元素的个数empty()如果集

2012-06-27 19:42:21 1001

原创 归并排序

归并排序是一种高效的排序算法,时间复杂度为nlogn,与快排相当,是分治法的一种典型应用。归并排序的思想是将若干个有序的序列合并为一个有序序列,常用的是二路归并,也就是将两个有序子序列合并为一个序列。归并排序可用递归完成,第一次排序将序列分成两部分,第二次排序将两序列在分成两部分,如此下去,直到每个子序列只有一个元素,则子序列自然有序,然后合并即可。归并操作的工作原理如下:

2012-06-27 14:39:03 893

原创 一个运用map的文本转换程序

本程序的功能是对文本中需要转换的单词进行转换。程序需要两个文件,一个文件存放转换单词对照表,另一个文件存放要进行转换的文本。本程序的文本文件内容如下:trans_word_map.txt'em themcuz becausegratz gratefuli Inah nopos supposedsez saidtanx thankswuz wast

2012-06-27 11:11:26 841

原创 STL容器之map

map可以理解为之中关联数组,之所以称为关联是因为map是通过键值来访问,而不是通过元素在数组中的位置来访问。map的键类型必须满足严格弱排序,解释一下:1.当键值与自身比较时,一定产生false结果2.两个键不能相互小于,而且如果 k13.如果两个键值相互不小于,则视为相等map定义的类型:map::key_type;键的类型map::mapped_type;键所关联

2012-06-27 09:17:30 1169

原创 STL容器之queue和priority_queue

STL的顺序容器还有最后两种,这两种都是适配器,分别是queue和priority_queue,这两种容器用法基本相同,所以就放在一块说了。他俩的构造函数形式与stack完全一样,而且都包含在queue头文件中。他们提供的操作如下:queue:back() 返回最后一个元素 empty() 如果队列空则返回真 front() 返回第一个元素 pop() 删除第一个元素

2012-06-26 15:46:25 2750

原创 STL容器之deque

deque是double-ended queue的简称,是一种类似vector的容器,提供随机访问功能,与vector不同的是,deque可以实现在头部和尾部两端插入元素。deque提供的操作和vector很相似,列出如下:Constructors 创建一个新双向队列构造函数有如下原型:  deque();//无参  deque( size_type size );//构造

2012-06-26 14:51:19 926

原创 STL容器之stack

先说明一个概念,适配器(adapter),适配器是标准库中的通用概念,包括容器适配器、迭代器适配器、函数适配器。本质上,适配器是使一事物的行为类似于另一事物的行为的一种机制。容器适配器让一种已存在的容器类型以一种不同的抽象类型的工作方式实现。STL提供了三种顺序容器适配器,queue、priority_queue、stack。每一种适配器都定义了两个构造函数,如下:A a;

2012-06-26 07:55:31 1058

原创 小实验,四种排序算法性能比较

闲着没事,做个小小的测试,测试一下冒泡,选择,插入和快速四种排序对同一个含有1000000个元素的数组排序所用的时间,做个比较。四种排序的代码如下:冒泡排序:template void bubble_sort(T a[], int num){ if(num ==0 || num == 1) return ; bool changed = false; do{ for(i

2012-06-25 21:58:44 3056 1

原创 快速排序

快速排序是一种效率很高的排序,具有最好nlogn,最坏n2的复杂度,总的来说,快排的效果是非常好的,如果有兴趣研究算法性能的分析,推荐阅读《算法导论》,我在这里就不分析了,也分析不明白。总之,它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数

2012-06-25 20:21:54 710

原创 STL容器之list

list将元素按顺序储存在链表中. 与向量(vector)相比, 它允许快速的插入和删除,但是随机访问却比较慢. list提供如下三种构造函数:list l1;list l2(l1);list l3(b, e);b,e是指定范围的两个迭代器list提供如下的接口函数,具体实现及函数原型请参阅其他帮助文档assign() 给list赋值 back() 返回最后一个元素

2012-06-25 15:06:31 760

原创 STL容器之vector

Vectors 包含着一系列连续存储的元素,其行为和数组类似。访问Vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成,而查找特定值的元素所处的位置或是在Vector中插入元素则是线性时间复杂度。vector定义了五种构造函数分别是:vector v1;vector v2(v1);vector v3(b, e)vector v4(n, i);vecto

2012-06-25 10:44:27 676

原创 选择排序

选择排序是一种不稳定的排序方法,排序思想比较简单,大致可描述为:每次在待排序元素中选出最小元素,放到前面,如此下去,每次选出的都是剩余元素的最小元素,直至待排序元素只剩一个时,排序结束,演示过程如下:设待排序有n个元素,分别为[1...n],未排序时,有序区元素个数为零,无序区元素个数为n。以五个元素为例,a[5] = {5, 4, 3, 2, 1}第一趟排序从无序区选出最小元素为

2012-06-25 08:36:42 649

原创 冒泡排序

冒泡排序是一种简单实用的排序算法。是稳定的。其基本思想为:从第一个元素开始,与相邻的后一个比较,如果前一个元素大于后一个元素,则元素交换,否则不动;然后比较第二个和第三个,前大后小则交换,否则不换;如此下去,比较完第n-1个和第n个元素之后,第一趟排序结束,此时最大的元素被换到了最后面。第二趟继续以上动作,只比较前n-1个元素即可,因为最大的已经到了最后面,无需再比较,第二趟结束后,这时倒数第

2012-06-24 17:15:41 686

原创 二叉查找树的简单模板实现

二叉排序树又称二叉查找树,是一种的高效的查找数据结构,查找效率等同二分法。  以下是二叉查找树的一种简单模板实现: #include using namespace std;template class BinSearchTree{public: typedef Node* tree; BinSearchTree():rp(NULL), n(){} ~B

2012-06-24 15:39:51 1202

原创 单链表c++简单模板实现

简单的单链表模板实现:#includeusing namespace std;template class List{public: //构造函数 List():head(NULL), len(0){} //析构函数 ~List(){ clear(); } //判断链表是否为空 bool empty()const{ return he

2012-06-24 10:49:33 1900

原创 条款01:视c++为一个语言联邦

《Effective C++》,久闻大名,幸得一见,都说c++程序员分两类,看过EffectiveC++的和没看过的,可见对此书评价之高,很少人能出其右。身为菜鸟,先看一遍,记记笔记,留着以后水平提高后回来批斗自己。都说C++是难学易用的语言,难学是因为她具有多种编程范式,既能进行过程化编程(procedural),也能进行面向对象编程(object-oriented),也支持泛型编程

2012-06-07 23:18:30 1333

unix系统结构图

unix系统结构图

2012-10-05

c语言 谭浩强

c语言 谭浩强

2012-09-06

unix高级编程pdf

经典unix编程书籍 高清pdf 作者是richard stevens

2012-07-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除