C/C++
文章平均质量分 72
老胡爱分享
微信公众号【老胡爱分享】
个人主页:http://www.hoohack.me
掘金:https://juejin.im/user/577b3080a633bd005bdaed03
展开
-
gcc和g++的区别
gcc和g++都是GNU(组织)的一个编译器。误区一:gcc只能编译c代码,g++只能编译c++代码两者都可以,但是请注意:1.后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。C++的语法规则更加严谨一些。2.编译阶段,g++会调用gcc,对于c++代码,两者转载 2013-11-25 19:17:41 · 660 阅读 · 0 评论 -
算法学习一----设计包含min函数的栈
这学期大三了,身边的同学都在准备找实习了,就业压力挺大的说,最近为了准备求职的笔试,很长时间都没有写博客了。最近都在学习C++和数据结构,现在接触算法,以前算法课堂没有好好上,只是把实验题做了就一了百了,没有大的提升,所以现在想在准备笔试的时候把算法好好的补一补,于是在这里记录自己的学习过程。今天学习了一个挺有趣的算法,是微软面试100题中的题目。题目如下:设计包含mi原创 2014-03-25 15:39:23 · 932 阅读 · 0 评论 -
算法学习二----求子数组的最大和
题目如下:输入一个整型数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。注:有些题目要求的是如果序列全为负数就返回0,但原创 2014-03-26 13:36:25 · 860 阅读 · 0 评论 -
算法学习十六----求最大公约数
题目:求最大公约数用辗转相除法求最大公约数的解法相信大家都很熟悉,就是用大数除以小数,然后取出余数与之前较小的数再递归地进行同样的操作,直到其中一个数为0。但是这样的除法在遇到大整数的时候作除法非常地耗时,这样对效率方面有很大的影响。设两个数为x,y采用辗转相除法的分析,如果一个数能够同时正处x和y,则必能同时整除x-y和y;而能够同时整除x-y和y的数也必能同时整原创 2014-04-21 13:46:47 · 1218 阅读 · 0 评论 -
算法学习四----计算1-n
题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。不能用循环,但是循环只是让相同的代码执行n遍,所以采用了新建一个类,类里面有静态变量,然后用该类创建一个对象数组,这样该类就被初始化了n次,每次都对该静态变量进行自增,然后就可以计算出结果算法的伪代码new n原创 2014-03-31 15:18:44 · 762 阅读 · 0 评论 -
算法十二----左旋转字符串
题目: 定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。 要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。算法思路:把字符串看做由两段组成,记作XY,题目的意思是要求出YX。记R(X)为X字符串旋转后的字符串,则R(R(X)原创 2014-04-16 09:33:29 · 810 阅读 · 0 评论 -
gdb常用命令
调用gdb编译需要在cc后面加 -g参数再加-o;[root@redhat home]#gdb 调试文件:启动gdb(gdb) l :(字母l)从第一行开始列出源码(gdb) break n :在第n行处设置断点(gdb) break func:在函数func()的入口处设置断点(gdb) info break: 查看断点信息(gdb) r:运行程序转载 2014-04-15 12:01:22 · 575 阅读 · 0 评论 -
算法学习三----句子单词反转
题目要求:反转句子中单词的顺序题目:输入一个英文句子,反转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字符一样处理。例如输入“I am a student.”,则输出“student. a am I”此算法可以结合栈的数据结构实现,分割每个单词,一个个放入栈中,然后再一个个弹出即可。下面是此算法的伪代码:原创 2014-03-28 19:46:17 · 1472 阅读 · 0 评论 -
C++多态的实现原理
1. 用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。2. 存在虚函数的类都有一个一维的虚函数表叫做虚表。类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。3. 多态性是一个接口多种实现,是面向对象的核心。分为类的多态性和函数的多态性。4. 多态用虚函数来实现,结合动态绑定。5. 纯虚函数是虚函数再加上= 0。6. 抽象类是指包转载 2014-04-15 07:58:35 · 649 阅读 · 0 评论 -
C++模板
12.1 C++高级编程之模板简介C++模板机制的出现增强了软件可重用性,反应到具体的应用程序中最简单的表现是程序代码实现同一功能性操作只需要定义实现一次,就可以处理不同类型的数据。C++中模板机制最直接表现形式为通用函数以及通用类的定义实现。在通用函数与通用类的定义中,可以通过将函数处理以及类操作处理的不同数据类型定义为一个模板参数。因此通过这样一种实现机制,通用函数与通用类将会用于实原创 2014-01-24 21:22:09 · 878 阅读 · 0 评论 -
常用的C/C++工程Makefile模板
在Linux下做开发难免要接触makefile,整个项目的构建都依赖于它。100个developer有100种makefile的写法,在一个较大的项目中,各种各样的makefile无论在开发、后期维护还是整个系统的持续集成都是一个负担。 有幸参与重构一个遗留系统的makefile,以下是一些心得和一个makefile模板。 重构目的: 1.清晰易懂、容易维护 2.方便系转载 2013-11-25 19:13:18 · 1513 阅读 · 0 评论 -
算法学习十八----寻找发帖水王
题目:经常在论坛或者讨论区上面会看到一些人每个帖子都回复或者发了很多帖子(但是没有对其他用户有用途的)。现在写一个算法,找出发帖数目超过帖子总数的一半的用户ID--称为发帖水王。(注:本题假设发帖水王存在)算法思路如下:先对序列排序之后,计算出每个ID的次数,输出出现次数最大的用户ID即可。但是这个方法效率比较低。另一种方法,就是想办法将大问题转换成小问题,对列表进行扫描,每次删除原创 2014-05-19 18:19:39 · 1394 阅读 · 0 评论