自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HZC的专栏

共勉

  • 博客(27)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

转载 C++动态绑定与静态绑定

静态绑定:编译时绑定,通过对象调用动态绑定:运行时绑定,通过地址实现                        C++的多态性                        静态多态性:函数多态性——函数重载                         模板多态性——C++模板(类模板、函数模板) 动态多态性:虚函数(只有用地址才能实现动态多态性)     

2015-03-31 22:16:12 425

转载 剑指offer ——寻找丑数

题目:我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第1500个丑数。分析:这是一道在网络上广为流传的面试题,据说google曾经采用过这道题。所谓一个数m是另一个数n的因子,是指n能被m整除,也就是n % m == 0。根据丑数的定义,丑数

2015-03-31 16:33:21 399

转载 华为笔试—在字符串A中删除字符串B中的全部字符

例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。思路:不可避免的是遍历第一个字符串,如果遍历一个字符,都需要去第二个字符串中查找其存不存在,那么复杂度会是O(nm),当然由于字符数有限,所以m是个常量。关于查找速度最快的当然是hash表,对于8位字符,size=2^8足矣。关于删除字符,后面的字符要往前

2015-03-31 15:56:35 1672

转载 输入一个链表的头结点,从尾到头反过来输出每个结点的值

题目:输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下:struct ListNode{      int       m_nKey;      ListNode* m_pNext;};分析:这是一道很有意思的面试题。该题以及它的变体经常出现在各大公司的面试、笔试题中。看到这道题后,第一反应是从头到尾输出比较简单。于是很自然地想到把链表中链接结点的

2015-03-31 14:01:04 811

原创 腾讯笔试 求基因碱基的逆序数

已知碱基序列ACGT为正序。求任意碱基序列的逆序数。要求算法的时间复杂度为o(n).如:一序列为 AGTCTCG 则其逆序数为7。#includeusing namespace std;int reserveNumber(char *pdna);int main() {   char str[]="ACTCTGA";   cout

2015-03-31 13:18:41 662

转载 提升编程语句的效率特性

一、选择语句的效率特性1、  充分考虑if语句中逻辑表达式的执行效率if中的逻辑表达式的运算遵循一下两个原则:1、表达式从左到右求值。2、当确定结果后,将不再进行计算。对于逻辑(&&)与而言,当出现表达式为假时停止运算;对于逻辑或(||)而言,当出现表达式为真时停止以后的运算。例子://不充分逻辑与       char str[] = "h

2015-03-31 11:12:43 466

转载 c++ String去除头尾空格的方法 trim实现

这篇文章主要介绍了c++ String去除头尾空格的方法,非常具有实用价值,需要的朋友可以参考下本文实例讲述了c++ String去除头尾空格的方法,分享给大家供大家参考。具体实现方法如下:实现该功能可使用string的find_first_not_of,和find_last_not_of方法,具体实现带如下:#include #include

2015-03-31 10:43:22 23147 1

转载 C++构造函数初始化顺序详解

这篇文章主要介绍了C++构造函数初始化顺序详解,是对C++代码的运行机制深入探讨,需要的朋友可以参考下1.构造函数、析构函数与拷贝构造函数介绍构造函数1.构造函数不能有返回值2.缺省构造函数时,系统将自动调用该缺省构造函数初始化对象,缺省构造函数会将所有数据成员都初始化为零或空3.创建一个对象时,系统自动调用构造函数析构函数1.析

2015-03-31 10:23:57 744

转载 C++常用字符串分割方法实例汇总

这篇文章主要介绍了C++常用字符串分割方法实例汇总,包括了strtok函数、STL、Boost等常用的各类字符串分割方法,非常具有实用价值,需要的朋友可以参考下本文实例汇总了C++常用字符串分割方法,分享给大家供大家参考。具体分析如下:我们在编程的时候经常会碰到字符串分割的问题,这里总结下,也方便我们以后查询使用。一、用strtok函数进行字符串分割

2015-03-31 10:20:08 655

转载 在一个字符串中找到第一个只出现一次的字符

题目:在一个字符串中找到第一个只出现一次的字符。如输入a1bacc1#¥2d7eff,则输出b。 分析:这道题是2006年google的一道笔试题。      看到这道题时,最直观的想法是从头开始扫描这个字符串中的每个字符。当访问到某字符时拿这个字符和后面的每个字符相比较,如果在后面没有发现重复的字符,则该字符就是只出现一次的字符。如果字符串有n个字符,每个字符可能与后面的O(

2015-03-30 15:30:09 501

转载 C++中的模板

templateint CompareNums(T1 num1, T2 num2){    if(num1     {        return 1;    }    else if(num2 > num1)    {        return -1;    }    return 0;}templatestruct Fuck

2015-03-30 14:57:36 345

转载 C++虚函数表解析

C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。虚函数表    对C++ 了解的

2015-03-30 14:50:50 284

转载 C++中的多态性和纯虚函数

C++的多态性:    当C++中在继承时会发生函数覆盖(覆盖的概念我的上一篇blog),此时如果将子类对象的地址赋给父类对象的指针,用该指针调用函数时,当子类中有这样的函数,则调用子类的函数,如果没有,则调用父类的函数,这种技术也被称为迟绑定技术。。如果父类的函数没有加virtual,则此时会调用父类的函数,这也被称为早期绑定。下面看例子:Animal.h[c

2015-03-30 14:32:11 422

转载 C++中函数覆盖 隐藏 重载区别

C++在继承这一节涉及到函数覆盖 隐藏 重载等,如何区别它们呢?首先函数覆盖的条件:基类函数必须是虚函数                                      发生覆盖的两个函数要分别位于派生类和基类中                                     函数名称和参数列表完全相同其次函数隐藏主要有以下两种情况:   派生类的

2015-03-30 14:30:46 336

转载 C++的类型转换:static_cast、dynamic_cast、reinterpret_cast和const_cast

在C++中,存在类型转换,通常意味着存在缺陷(并非绝对)。所以,对于类型转换,有如下几个原则:(1)尽量避免类型转换,包括隐式的类型转换(2)如果需要类型转换,尽量使用显式的类型转换,在编译期间转换(3)避免使用reinterpret_cast和老式的强制类型转换操作符通常,隐式的类型转换会导致警告,需要重视这些警告,并使用显式的类型转换代替,例如static_cast代替一些算术

2015-03-30 13:32:41 403

转载 C/C++中变量的作用域详解

作用域规则告诉我们一个变量的有效范围,它在哪儿创建,在哪儿销毁(也就是说超出了作用域)。变量的有效作用域从它的定义点开始,到和定义变量之前最邻近的开括号配对的第一个闭括号。也就是说,作用域由变量所在的最近一对括号确定。(1) 全局变量:   全局变量是在所有函数体的外部定义的,程序的所在部分(甚至其它文件中的代码)都可以使用。全局变量不受作用域的影响(也就是说,全局变量的生命期一直

2015-03-30 09:46:01 630

原创 类大小的计算

C++语言中类的继承是C++重要特性之一,暂且将类的继承分为成员变量以及成员函数两个方面。我们知道标准C++选择的方式是每个类对象存储一份自己的成员变量,那么这份成员变量的存储区是怎么布局的呢?下面分几种情况记录一些自己看法和体会(部分参考《Inside The C++ Object Model》)。 1,非静态成员变量的单一继承且不含virtual函数 C++标准

2015-03-30 08:54:15 864

转载 C/C++基本数据类型所占字节数

关于这个基本的问题,很早以前就很清楚了,C标准中并没有具体给出规定那个基本类型应该是多少字节数,而且这个也与机器、OS、编译器有关,比如同样是在32bits的操作系统系,VC++的编译器下int类型为占4个字节;而tuborC下则是2个字节。所以int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的):

2015-03-29 22:56:59 342

转载 C++之string学习笔记

在C++时代,由于诞生了类,出项了一种C++风格的字符串,也就是string型字符串。我们在调用string类来定义字符串的时候,我们必须在程序开头添加头文件:#include       而且,由于string类存在于命名空间std中,这样一来,我们就必须使用using n

2015-03-29 21:51:54 355

转载 C++ string 详解

之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。    好了,进入正题………首先,为了在我们的程序中使

2015-03-29 20:39:54 427

转载 百度一道笔试题(求n个整数连成一排组成的最小整数)

// LeastNumber.cpp : 定义控制台应用程序的入口点。  //09百度笔试试题,设有n个正整数,将它们连接成一排,组成一个最小的多位数。  //程序输入:n个数   输出:连接成的多位数  //例如:n=4时,4个整数55,31,312,33  输出:312 31 33 55    //解法思想:题目可转化为排序问题,只不过是比较方法与普通排序不同,这个排序中

2015-03-29 20:14:43 2566

转载 C++ 静态存储区、栈和堆的区别(转载)

学习c++如果不了解内存分配是一件非常可悲的事情。而且,可以这样讲,一个C++程序员无法掌握内存、无法了解内存,是不能够成为一个合格的C++程序员的。       一、内存基本构成       可编程内存在基本上分为这样的几大部分:静态存储区、堆区和栈区。他们的功能不同,对他们使用方式也就不同。       静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行

2015-03-29 20:03:48 486

转载 C++中内存分配、函数调用和返回值问题

在谈述函数调用和返回值问题之前,先来看看C++中内存分配的问题。C++编译器将计算机内存分为代码区和数据区,很显然,代码区就是存放程序代码,而数据区则是存放程序编译和执行过程出现的变量和常量。数据区又分为静态数据区、动态数据区,动态数据区包括堆区和栈区。以下是各个区的作用:(1)代码区:存放程序代码;(2)数据区   a.静态数据区: 在编译器进行编译的时候

2015-03-29 19:36:17 333

转载 Windows下的dos命令

“开始”---> “运行”输入以下命令,或者Win + R,输入以下命令对我比较有用的几个:31. regedit.exe----注册表48. msconfig.exe---系统配置实用程序  80. services.msc---本地服务设置 93. regedit.exe----注册表  110. osk------------打开屏幕键盘  1

2015-03-29 19:27:37 489

转载 条件编译 #ifdef #else #endif ( #ifndef #else #endif)

#ifdef #else #endif ( #ifndef #else #endif)条件编译       这几个宏是为了进行条件编译。一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。    条件编译命令最常

2015-03-29 19:14:14 587

转载 进程创建函数fork()、vfork()

一、进程的创建步骤以及创建函数的介绍1、使用fork()或者vfork()函数创建新的进程2、条用exec函数族修改创建的进程。使用fork()创建出来的进程是当前进程的完全复制,然而我们创建进程是为了让新的进程去执行新的程序,因此,就需要用到exec函数族对创建出来的新进程进行修改,让他拥有和父进程不一样的东西,修改后就可以执行新的程序,当然,修改后的子进程包含了要执行程序的信息

2015-03-26 16:32:29 661

转载 Linux中fork()函数详解

一、fork入门知识     一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。    一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新

2015-03-26 16:24:00 326

c++ 库函数(中文版)

c++ 库函数(中文版)

2014-09-28

数据结构1800题

介绍历年数据结构考试知识点,考点非常适合计算机类考研学子!

2013-07-04

飞思卡尔 S12X 与S12 核的区别

飞思卡尔单片机S12X 与S12 核的区别

2013-04-18

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

TA关注的人

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