
C/C++
文章平均质量分 60
洞庭小哥
在IT行业前线努力前行~~
展开
-
【学习笔记】关于STL中的map和hash_map
在网上看了一篇《详细解说STL hash_map系列》的文章(http://blog.163.com/liuruigong_lrg/blog/static/27370306200711334341781/),以及一些其他关于STL map和hash_map的资料,总结笔记如下: 1、STL的map底层是用红黑树存储的,查找时间复杂度是log(n)级别; 2、STL的hash_map原创 2013-03-02 17:26:44 · 23829 阅读 · 3 评论 -
【转】C++的深拷贝与浅拷贝
本文转自http://www.cnblogs.com/CHYGO/articles/1916427.html对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 01转载 2012-10-26 16:49:44 · 953 阅读 · 0 评论 -
【转】do{...}while(0)的意义和用法
转自:http://blogread.cn/it/article/5907 linux内核和其他一些开源的代码中,经常会遇到这样的代码:do{ ...}while(0) 这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么为什么要这么用呢? 实际上,do{...}while(0)的转载 2013-04-01 09:03:26 · 6388 阅读 · 1 评论 -
【算法题】数组中找到两个数,使其和等于某个数
From : http://leetcode.com/onlinejudgeTwo SumGiven an array of integers, find two numbers such that they add up to a specific target number.The function twoSum should return indices of the two原创 2013-04-08 21:02:29 · 5518 阅读 · 1 评论 -
【算法题】二元查找树转换成排序的双向链表
网上看到的笔试题一道:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整指针的指向,如: 10 / \ 6 14 / \ / \ 4 8 12 16 转换原创 2013-04-17 13:39:29 · 2017 阅读 · 0 评论 -
【算法题】写一个递归版本的链表转置程序
链表的转置是一个很常见、很基础的数据结构题了,非递归的算法很简单,用三个临时指针在链表上循环一遍即可,不再赘述。递归算法也是比较简单的,但是如果思路不清晰估计也难一时半会儿写出来把。下面是递归版本的链表转置程序:#include using namespace std;typedef struct Node{ Node(int v, Node *ptr=NULL) : data原创 2013-04-27 13:46:42 · 2538 阅读 · 0 评论 -
【算法题】打印二元查找树中元素和等于指定数的所有路径
题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如:输入整数24和如下二元树 10 / \ 6 14 / \ 4 8则打印出两条路径:10, 14 和10, 6, 8。#includ原创 2013-04-19 08:55:47 · 1559 阅读 · 1 评论 -
【算法题】求数组中唯一重复的元素
在网上看到一个这样的题:一个数组中含有1001个元素,存放了1,2,3...1000和一个重复的数。只有唯一一个数是重复的,其它均只出现一次。要求设计一个算法找出这个重复的数,要求:每个数组元素只能访问一次,不用辅助存储空间。解法一:最简单的方法是,先求出1...1000的和(用公式:n(n+1)/2)sum1,然后求出arr[0]...arr[1000]的和sum2,(sum2-原创 2013-04-27 14:59:11 · 7310 阅读 · 6 评论 -
C++函数调用过程深入分析
C++函数调用过程深入分析刘兵 QQ: 44452114E-mail: liubing2000@foxmail.com 0. 引言 函数调用的过程实际上也就是一个中断的过程,那么C++中到底是怎样实现一个函数的调用的呢?参数入栈、函数跳转、保护现场、回复现场原创 2011-08-11 20:43:42 · 17433 阅读 · 9 评论 -
【算法题】百度笔试题——求一组线段的最大重叠区域
之前参加百度校招时遇到过一道“求一组线段的最大重叠区域”的算法题,当时没有搞定,汗颜!今天在网上看到了一位高手写的答案,恍然大悟,茅塞顿开!看了高手的解答之后才知道原来真不难,再次汗颜!将题目和代码如下,我在代码中加入了些注释。【题目描述】请编写程序,找出下面“输入数据及格式”中所描述的输入数据文件中最大重叠区间的大小。对一个正整数n,如果n在数据文件中某行的两个正整数(假设为A和B)原创 2013-03-01 15:32:30 · 6256 阅读 · 2 评论 -
【学习笔记】字符串编辑距离(字符串相似度)
字符串编辑距离是一个很经典的问题了,以前参加编程比赛、笔试面试的时候经常会碰到,今天看《编程之美》的3.3节中又遇到了该问题,又重新回顾了一边,顺便在这里总结一下。【问题描述】给定一个源字符串和目标字符串,能够对源串进行如下操作: 1.在给定位置上插入一个字符 2.替换任意字符 3.删除任意字符求通过以上操作使得源字符串和目标字符串一致的最小操作步数原创 2013-03-16 09:54:08 · 5486 阅读 · 1 评论 -
【北大天网搜索引擎TSE学习笔记】第2节——重要数据文件介绍
本节对系统中的主要的数据文件做一个简单的介绍,方便后面对系统源代码的阅读和对系统的理解。以下如不特别说明,所有路径或者文件都是相对于index目录而言的,即以index为当前目录。(1) ./ChSeg/words.dict为词典文件,包含该系统支持的所有中文单字、词以及标点符号等,该词典是中文分词的依据,直接决定了分词的结果。该文件中每条记录为一行,包含三项数据,第一个为序号,第二个原创 2013-01-15 13:31:22 · 3716 阅读 · 1 评论 -
C&C++中的qsort和sort库函数
今天在看高手的代码的时候才发现,C语言中有一个qsort的库函数(在头文件中),该函数可以对用户指定的数据(或者说内存区域)进行快速排序,为什么说是对内存区域排序呢?因为排序的过程中是对用户指定的内存区域按照用户指定的偏移量进行排序的,所以不仅可以对简单类型的数组排序,也可以对结构体类型的数组按照其某个字段来排序,使用起来非常的方便,下面将详细说明该函数的用法。 另外,C++的STL中也实原创 2013-03-01 14:22:15 · 2741 阅读 · 0 评论 -
C++常用的读写文件操作
1、有三种文件IO流类:fstream、ifstream和ofstream,使用时要包含头文件:#include ;2、实际应用中,根据不同的需要选择不同的IO流类。如果想以输入方式打开,就用ifstream来定义;如果想以输出方式打开,就用ofstream来定义;如果想以输入输出方式来打开,就用fstream来定义;3、打开文件的第一种方式,通过构造函数。即在定义流对象时原创 2013-03-07 13:35:27 · 1882 阅读 · 0 评论 -
【学习笔记】位操作常见应用和技巧
1.判断奇偶if ((a & 1) == 0)判断a是否是偶数,同理if ((a & 1) == 0)判断a是否是奇数。2.交换两数不用第三个变量交换两个数,如下:void Swap(int &a, int &b) { if (a != b) { a ^= b; b ^= a;原创 2013-03-06 22:33:47 · 1164 阅读 · 0 评论 -
C/C++学习笔记2 - cin深入分析(上) - cin输入操作处理(原创)
cin很多初学者都认为cin函数是一个很简单的函数,其实不然!cin函数有很多需要了解的知识(比如:cin的返回值是什么,cin提供了哪些成员函数且分别是什么作用,如cin.clear(), cin.ignore(), cin.fail(), cin.good()等等),如果没有很好的掌握,在使用的时候很可能会出问题却不知其原因!而且很多人也确确实实遇到过不少问题,以下是几个简单的例子:原创 2008-04-17 07:15:00 · 6142 阅读 · 4 评论 -
C/C++学习笔记3 - cin深入分析(下) - cin的错误处理(原创)
深入了解cin错误处理机制,深入了解cin.clear/cin.ignore/cin.good/cin.fail等函数 在前一节中我们有几个例子中提到了cin函数出错,以致不再执行读操作(程序8)。而且我们经常会看到程序中会出现cin.clear(),cin.ignore(), cin.fail()等函数。这些函数都是与cin的错误处理有关的。这一节我们来分析一下cin的错误处理机制,并且学原创 2008-04-17 07:19:00 · 6432 阅读 · 3 评论 -
C/C++学习笔记1 - 深入了解scanf()/getchar()和gets()等函数(原创)
C/C++学习笔记1 - 深入了解scanf()/getchar()和gets()等函数----------------------------------------------------| 问题描述一:(分析scanf()和getchar()读取字符) |---------------------------------------------------- scanf(), ge原创 2008-04-16 09:25:00 · 6880 阅读 · 2 评论 -
【题】统计一个Byte中的“1”的个数(转)
/*题目描述:对于一个字节(8bit)的无符号整形变量,求二进制表示中“1”的个数,要求算法执行效率尽可能地高*/方法一:直接的方法就是除以2向右移位, 逐个统计,但是用到取模和相除,这个很耗资源。int Count(BYTE v){int num=0;while (v) { if (v%2==1) { num++; }转载 2012-10-25 09:05:43 · 3109 阅读 · 0 评论 -
【转】算术表达式中缀形式转后缀形式,并基于后缀式和栈进行计算
原文地址:(该文章也得非常好!要原创作者致敬!)http://blog.youkuaiyun.com/liuzhanchen1987/article/details/7387480对于一个中缀表达式 a+b*c*(d-e/f) 转换成后缀是这样的形式 abc*def/-+后缀表达式是相当有用处的,转换成后缀表达式后求值会简单很多.那么该如何转换呢? 网上关于这方面的转载 2012-11-27 19:46:30 · 1812 阅读 · 0 评论 -
一个类模板和类运算符重载的小程序
#include #include using namespace std;class CBook{public: CBook(string name, int n=0) : m_strName(name), m_nIndex(n) {} void SetIndex(int n) { m_nIndex = n; }原创 2012-11-19 14:57:59 · 1125 阅读 · 0 评论 -
【转】如何在Linux使用Eclipse + CDT开发C/C++程序?
引用地址:http://www.cnblogs.com/oomusou/archive/2006/11/11/557741.htmlA. 为什么要在Linux使用Eclipse开发C/C++程序? Linux是一个以C/C++开发为主的平台,无论是Kernel或是Application,主要都使用C/C++开发。传统在Linux下开发程序,是在文字模式下,利用vi等文字编辑转载 2012-11-20 14:27:59 · 952 阅读 · 0 评论 -
【转】c++ web编程:写出你的CGI程序(英文)
原文地址:http://www.tutorialspoint.com/cplusplus/cpp_web_programming.htmWhat is CGI ?The Common Gateway Interface, or CGI, is a set of standards that define how information is exchanged betwee转载 2013-01-20 16:14:24 · 2933 阅读 · 0 评论 -
【转】c++ web编程:写出你的CGI程序
转自:http://www.cnblogs.com/moonlove/archive/2012/02/22/2509147.html英文原文地址:http://www.tutorialspoint.com/cplusplus/cpp_web_programming.htm一 什么是CGI CGI(The Common Gateway Interface):通用网关转载 2013-01-19 13:12:49 · 5431 阅读 · 0 评论 -
【学习笔记】hash表和hash函数
hash表是一种非常强大的数据结构,应用也非常广泛,在网上可以找到很多介绍的资料,这里不进行赘述。其实hash表的原理很简单,随便找一篇相关的介绍都能看懂,但是如果要应用的话,有一个很重要而且不得不考虑的问题——怎么选择或设计hash函数,hash函数的好坏直接影响了数据存取的效率。网上很多关于hash表介绍的文章都只是介绍了hash表的原理,即便是举的例子也只是用最简单的“直接定址法”,例如原创 2013-03-04 21:11:15 · 1410 阅读 · 0 评论 -
【北大天网搜索引擎TSE学习笔记】第1节——环境搭建
最近在看《搜索引擎——原理、技术与系统》一书,同时下载了书中介绍的原型系统——北大天网搜索引擎TSE的源代码进行学习。之前没有任何搜索引擎方面的基础,也没有web开发经验,一切从零开始学习。为了记录学到的知识以备日后之用,也为了与大家分享并一起学习探讨,将学习的过程整理成笔记,连载发布于本博客。声明一下,我不是高手,我是菜鸟,从零开始学习,所以如果文中有错误之处敬请大家批评指出,也欢迎感兴趣的朋友原创 2013-01-09 11:30:39 · 8829 阅读 · 14 评论