c++
文章平均质量分 50
wangwh485
hitcser
展开
-
C++学习之路(转)
首先肯定要读一读Bjarne Stroustrup的The Design and Evolution of C++,了解一下这个语言的历史。接下来就可以看别的书了,但要不停地回头看这本书,看到你不断地学到的新技术是怎么样一点点地被接纳到这个语言中去的。第一本书因人而异,基础好一些的,可以看Stanley B. Lippman的C++ Primer,这本书非常地巨大,你打星号的部分可以不要看。基础不太好的,可以看Stanley B.Lippman的Essential C++,这本书份量要轻得多,不过四个C++转载 2010-08-01 15:11:00 · 414 阅读 · 0 评论 -
最长回文子串
void huiwen(const char *p){ int n = strlen(p); int maxlen = 0; int l,r; int start=0; bool flag=0; char res[BUFFSIZE]; for(int i=1;i<n原创 2011-09-06 19:39:37 · 658 阅读 · 0 评论 -
最长公共子序列
最长公共子序列与最长公共子串的区别在于最长公共子序列不要求在原字符串中是连续的,比如ADE和ABCDE的最长公共子序列是ADE。我们用动态规划的方法来思考这个问题如是求解。首先要找到状态转移方程:等号约定,C1是S1的最右侧字符,C2是S2的最右侧字符,S1‘是从转载 2011-09-06 21:02:26 · 798 阅读 · 0 评论 -
求和最大的连续子串问题
最大子序列是要找出由数组成的一维数组中和最大的连续子序列。比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,达到最大;而 {5,-6,4,2}的最大子序列是{4,2},它的和是6。你已经看出来了,找最大子序列的方法很简单,只要前i项的和还没有小于0那么子转载 2011-08-29 11:09:54 · 1710 阅读 · 0 评论 -
M个数组的最小公共元素
一道电面题,M个非减有序的非负整数数组,每个数组长度均为N,求这M个数组的最小公共元素,同学给了一种思路,首先找出每个数组的第一个元素中最大的一个,然后在其他数组中向后查找直到找到等于或大于这个最大元素的位置,或者超出数组长度停止,然后在新的M个位置中查找最大的,重复前面的过程。原创 2011-09-07 13:20:35 · 1307 阅读 · 0 评论 -
最长公共子串LCS
找两个字符串的最长公共子串,这个子串要求在原字符串中是连续的。其实这又是一个序贯决策问题,可以用动态规划来求解。我们采用一个二维矩阵来记录中间的结果。这个二维矩阵怎么构造呢?直接举个例子吧:"bab"和"caba"(当然我们现在一眼就可以看出来最长公共子串是"ba"或"ab")转载 2011-09-06 21:00:26 · 1674 阅读 · 0 评论 -
1-1000放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次
1-1000放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次。每个数组元素只能访问一次,设计一个算法,将它找出来;不用辅助存储空间,能否设计一个算法实现?将1001个元素相加减去1,2,3,……1000数列的和,得到的差即为重复的元素。转载 2011-09-07 22:34:16 · 4680 阅读 · 0 评论 -
点操作符和箭头操作符
http://blog.csdn.net/fulima007/article/details/6327067首先介绍一下C++中的结构。对于一个结构来说:struct MyStruct{ int member_a; };如果有个变量My转载 2011-09-11 09:16:41 · 1212 阅读 · 1 评论 -
最近的两个面试
这周参加了两个面试,一个是sznr的,一个是电面。sznr周二初试,周三笔试,周四复试,周五体检,效率很高。很可惜,觉得不合适,没去。面试主要是问简历上写的项目。没有什么技术问题。笔试题主要是:1、一些基本的填空,输入输出什么的。2、编程:归并排序、汉诺塔问题、最大带权子原创 2011-09-15 22:32:45 · 776 阅读 · 0 评论 -
dynamic_cast、static_cast、const_cast 和 reinterpret_cast
一、dynamic_cast: 用法: dynamic_cast (expression).将expression转化为具有type-id型的指针。type-id必须是一个 指针、引用(一个已经定义的类)或者void指针。如果是个指针,ex转载 2011-08-24 11:06:07 · 619 阅读 · 0 评论 -
一个不可以被继承的类
方法1class NoExtend //此时这样做的话,只会在堆上分配内存,无法在栈上分配对象 { private : NoExtend() ; ~NoExtend() ; public :转载 2011-08-24 16:46:34 · 548 阅读 · 0 评论 -
指针成员的类的COPY
一问题描述 默认的拷贝构造函数,和拷贝操作符函数,均执行按位copy。即如果将类 A = B ,且AB中有指针成员变量 , 则 A B 两个类的对象,在执行复制操作时,均指向同一处指针位置。若先对A进行析构,则A释放了指针空间。此时B无法访问指针变量。 注意点转载 2011-08-24 21:33:04 · 571 阅读 · 0 评论 -
寻找和为给定数的连续正整数数列
比如 sn = 100 时,总和为100 的连续正整数数列有1100218 19 20 21 2239 10 11 12 13 14 1转载 2011-08-29 11:12:13 · 961 阅读 · 0 评论 -
Linux下Socket编程
http://hi.baidu.com/javatown/blog/item/f657bd82dd2c1ba40df4d262.html什么是SocketSocket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/I转载 2011-08-31 19:37:52 · 409 阅读 · 0 评论 -
线程中的条件变量pthread_cond_wait、pthread_cond_signal
条件变量条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待 "条件变量的条件成立 "而挂起;另一个线程使 "条件成立 "(给出条件成立信号)。为了防止竞争,条件变量的使用总是和一个互斥锁结合在一起。1.创建和注销 条件变量和互斥锁转载 2011-08-31 22:51:09 · 710 阅读 · 0 评论 -
linux windows行结尾的问题
linux下,以\n作为行结尾,而windows则以\r\n作为行结尾。在标准c++中,使用getline()函数读取输入文件的一行的时候,需要考虑这个问题,下面待写。。。原创 2011-07-16 10:53:33 · 512 阅读 · 0 评论 -
内存字节对齐
author:hairetz写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的变量总长度要大,这是怎么回事呢?讲讲字节对齐吧./******************************分割线如果体系结构是不对齐的,A中的成员将会一个挨一个存储,从而sizeof(a)为11。显然对齐更浪费了空间。那么为什么要使用对齐呢?体系结构的对齐和不对齐,是在时间和空间上的一个权衡。对齐节省了时间。假设一个体系结构的字长为w,那么它同时就假设了在这种体系结构上对宽度转载 2010-10-27 15:16:00 · 332 阅读 · 0 评论 -
c++最简单结构
首先只能在一个CPP文件中声明全局变量,另外最好加个包含声明变量的头文件,这样就基本上解决问题了。比如://---------------------------------------// 全局变量ValueDef.h中声明如下:#ifndef INCLUDE_G_VALUE#define INCLUDE_G_VALUEextern int g_iTest; // 声明引用全局变量一extern int g_dTest; // 声明引用全局变量二#endif转载 2010-11-19 09:57:00 · 488 阅读 · 0 评论 -
c++ 文件结构
<br />第 1 章 文件结构<br />每个 C++/C 程序通常分为两个文件。一个文件用于保存程序的声明( declaration ),称为头文件。另一个文件用于保存程序的实现( implementation ),称为定义( definition )文件。<br />C++/C 程序的头文件以“ .h ”为后缀, C 程序的定义文件以“ .c ”为后缀, C++ 程序的定义文件通常以“ .cpp ”为后缀(也有一些系统以“ .cc ”或“ .cxx ”为后缀)。<br />1.1 版权和版本的声明<b转载 2010-11-19 10:37:00 · 1680 阅读 · 0 评论 -
不重复随机数序列的生成
很多算法题目需要大量数据作为原始数据测试算法的性能,自己写了一个生成指定范围内指定个数的不重复随机数的生成函数。下面是代码,有错误请指正。#include#include#includeusing namespace std;#define NUMS 1000000#define NMIN 0#define NMAX 10000000int * creatArrWithoutD(int,int,int);int * creatArrWithD(int,int,in原创 2011-05-09 00:32:00 · 760 阅读 · 0 评论 -
指针和引用的区别
说明:1、转至http://blog.csdn.net/dujiangyan101/archive/2008/08/28/2844138.aspx2、根据评论内容修改了文章中的某些部分: (jjqldyt)引用是一个内容可以改变自身不能改变的指针。加上const即常引用是内容也不能变了。 (woolfzhu)C 中指针和引用的物理实现是一回事,都是内存地址;两者的区别是在编译时编译器无法对指针操作进行类型检查,而对引用可以。这也是引用更安全的原因。(1)引用总是指向一个对象,没有所谓的 nul转载 2011-05-19 10:28:00 · 513 阅读 · 0 评论 -
C++著名程序库的比较和学习经验(STL.Boost.GUI.XML.网络等等)
<br /> 转至:http://blogold.chinaunix.net/u3/103355/showart_2047789.html<br /> <br />这篇文章在网上有很多转载,大部分都分成几篇文章,我把它合在一起。我不清楚原文于网上的最早出处,我找到的这篇文章的地址http://www.kuqin.com/language/20090215/34991.html,发表于2009年2月,从文章的内容看,这篇文章的成文时间远早于这个的日期。由于本人的水平很有限,文中所提到的很多都不了解,甚至都不知转载 2011-05-26 15:02:00 · 735 阅读 · 0 评论 -
Windows C++多线程与Linux C++多线程编程
http://blog.csdn.net/oyzdz1988/archive/2010/04/19/5503925.aspx Windows C++: 所需头文件#include #include 开启一个线程: hReader = (HANDLE)_beginthreadex(NULL, 0, startReader, this, 0转载 2011-06-03 11:17:00 · 629 阅读 · 0 评论 -
如何终止线程的运行(C/C++)
http://blog.csdn.net/oyzdz1988/archive/2010/05/22/5615869.aspx 如何终止线程的运行(C/C++)想要终止线程的运行,可以使用以下方法: 1、线程函数返回(最好使用该方法)。 2、通过调用ExitThread函数,线程将自行撤消(最好不使用该方法)。 3、同一个进程或另一个进程中的线程调用TerminateThread函数(转载 2011-06-03 11:19:00 · 818 阅读 · 0 评论 -
关于printf类型提升的一道题
最近群里讨论了一道题目:--------------------------------------------------------------char *str = "/x01/x23/x45/x67/x89/xab/xcd/xef"; while(*str!=/0)printf("%x/n",*str++);---------------------------原创 2011-06-07 17:24:00 · 812 阅读 · 1 评论 -
C++多态技术
<br />C++多态技术<br />作者:荣耀<br />提交者:eastvc 发布日期:2003-12-14 19:38:12<br />原文出处:http://www.royaloo.com/articles/articles_2003/PolymorphismInCpp_content.htm<br /><br />摘要<br />本文描述了C++中的各种多态性。重点阐述了面向对象的动态多态和基于模板的静态多态,并初步探讨了两种技术的结合使用。 <br />关键词<br />多态 继承 虚函数转载 2011-04-19 00:45:00 · 538 阅读 · 0 评论 -
C++总结之模版和泛型编程
<br /> C++总结之模版和泛型编程 <br />http://blog.csdn.net/lightlater/archive/2010/08/08/5796719.aspx<br /> <br />三年来的实践,遇到的模版编程并不是很多,只是在最近的一个电信项目中,看到了高超的模版技术应用,十分感慨,这里对于模版的总结,完全参照Effective C++ 第三版。<br /><br />隐式接口和编译期多态<br />1.classes和template都支持接口(interfaces)和多态(po转载 2011-04-19 00:48:00 · 475 阅读 · 0 评论 -
标准c++下数字和字符串的相互转化
不像c使用sprintf进行数字与char *之间的转换,标准c++使用ostringstream和istringstream进行数字和string之间的转换,下面待写...原创 2011-07-16 10:56:41 · 396 阅读 · 0 评论 -
c++ 类成员函数如果被static修饰,就不能为const修饰
c++ 类成员函数如果被static修饰,就不能为const修饰原因是const修饰的是该成员函数的this指针,而static成员函数没有this指针,故不可为const,volitle.原创 2011-08-30 09:59:30 · 701 阅读 · 0 评论