冰殇的博客

「Talk is cheap. Show me the code」

C/C++知识点回顾与总结

  本博客总结C/C++的常见知识点,如有问题欢迎提出,转载请注明出处http://blog.csdn.net/qq_34342154/article/details/78876099 一、C和C++的区别 C++在C的基础上增加类 C面向过程,C++面向对象 C主要考虑通过一个过程将输入量...

2017-12-22 19:03:45

阅读数:147

评论数:0

《程序员代码面试指南》Python实现(个人读书笔记)

说明  最近一直在读左神的书——《程序员代码面试指南—IT名企算法与数据结构题目最优解》,为了记录自己的学习成果,并且方便以后查看,将自己读书时的想法与使用python实现的代码记录在此博客。   >>>github代码地址>>>栈和队列 设计一个有getMi...

2017-09-09 21:57:34

阅读数:2340

评论数:1

集合的所有子集

方法一: 对于任意一个元素,都可以使用一个bit位表示该元素的存在与否,例如: 集合{a, b, c},可以使用{1, 1, 1}表示{a, b, c},{1, 0 , 1}表示{a,c}。 故可以使用一个整型变量来映射整个集合,从000…000 ~ 111…111,分别表示不同的情况,一共...

2018-03-10 16:22:08

阅读数:27

评论数:0

C++类型转换操作符 dynamic_cast

dynamic_cast 顾名思义是支持动态的类型转换,即支持运行时识别指针或引用所指向的对象。 dynamic_cast<>用于C++类继承多态间的转换,分为: 子类向基类的向上转型(Up Cast) 基类向子类的向下转型(Down Cast)...

2018-03-03 17:15:56

阅读数:52

评论数:0

C++浮点数的存储方式

类型float大小为4字节,即32位,内存中的存储方式如下: 最高位 31 位 ,保存符号位 S,“0”表示正数 ,“1”表示负数 第30 位~23 位 ,共 8 位 ,保存指数部分(指数值加上偏移量127) ,称为阶码 第22 位~0 位 ,共 23 位 ,保存系数部分 (整数位的1不保存)...

2018-02-24 18:18:24

阅读数:38

评论数:0

C++多重继承下的指针类型转换

在C++中,指针的类型转换是经常发生的事情,比如将派生类指针转换为基类指针,将基类指针转换为派生类指针。指针的本质其实就是一个整数,用以记录进程虚拟内存空间中的地址编号,而指针的类型决定了编译器对其指向的内存空间的解释方式。 基于上面的理解,我们似乎可以得出一个结论,C++中对指针进行类型转换,...

2018-02-22 16:13:38

阅读数:44

评论数:0

C++虚函数继承与虚继承

虚函数继承和虚继承是完全不同的两个概念。 虚函数继承是解决多态性的,当用基类指针指向派生类对象的时候,基类指针调用虚函数的时候会自动调用派生类的虚函数,这就是多态性,也叫动态编联。 虚继承就是为了节约内存,他是多重继承中的特有的概念。适用于菱形继承形式。 比如B继承于A、C继承于A、D继承于...

2018-02-22 15:56:40

阅读数:86

评论数:0

汇编语言学习笔记

1、debug 调试工具 参数: -r    显示所有寄存器状态,可以修改寄存器内容(形如-r ax) -d    显示从当前cs:ip位置之后的128个字节,可以指定地址打印(形如: -d 段地址:偏移地址) -u    将cs:ip位置后续的字节翻译成汇编指令,可以制定地址翻译(...

2018-02-08 23:37:54

阅读数:46

评论数:0

什么是字节对齐,为什么需要字节对齐

概念   在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。在结构中,编译器为结构的每个成员按其自然边界(alignment)分配空间。各个成员按照它们被声明的顺序在内存中顺序...

2018-02-02 18:30:06

阅读数:53

评论数:0

C/C++常用预处理指令总结(#ifdef,#ifndef,#endif,#pragma once ...)

本文主要记录了C/C++常见预处理指令。包括#include、#define、#ifdef,#ifndef,#endif,#pragma once 什么是预处理指令?  预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个...

2017-12-24 22:44:14

阅读数:50

评论数:0

剑指Offer---表示数值的字符串

【题目】  请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串 “+100”, “5e2”, “-123”, “3.1416”和 “-1E-16”都表示数值。 但是 “12e”, “1a3.14”, “1.2.3”, “+-5”和 “12e+4.3”都不是。【基本思路】  字...

2017-12-24 12:12:42

阅读数:49

评论数:0

剑指Offer---正则表达式匹配

【题目】  请实现一个函数用来匹配包括’.’和’*’的正则表达式。模式中的字符’.’表示任意一个字符,而’*’表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”和”ab*ac*a”匹配,但是与”aa.a”和”ab*a...

2017-12-24 10:33:47

阅读数:43

评论数:0

C++虚函数表剖析

一、概述  为了实现C++的多态,C++使用了一种动态绑定的技术。这个技术的核心是虚函数表(下文简称虚表)。本文介绍虚函数表是如何实现动态绑定的。二、类的虚表  每个包含了虚函数的类都包含一个虚表。   我们知道,当一个类(A)继承另一个类(B)时,类A会继承类B的函数的调用权。所以如果一个基...

2017-12-22 19:24:53

阅读数:65

评论数:0

剑指Offer---和为S的两个数字

【题目】  输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。【基本思路】  使用两个指针small和big,small表示第一个数字的位置,big表示第二个数字的位置。初始时,small = 0,big = 数组最后一...

2017-12-13 22:00:43

阅读数:35

评论数:0

剑指Offer---和为s的连续正数序列

【题目】  输入一个正数s,打印出所有和为s的连续正数序列(至少包含两个数)。例如,输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以打印出3个连续序列1~5,4~6,7~8。【基本思路】  使用两个指针small和big,small表示连续序列的首元素,big表示连续序列的尾元素,...

2017-12-13 20:31:53

阅读数:34

评论数:0

剑指Offer---寻找第N个丑数

【题目】  把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。【基本思路】  方法一:      如果一个数是丑数,那么这个数,如果能被2整除,就一直除以2,如果能被...

2017-12-10 22:28:20

阅读数:85

评论数:0

剑指Offer---栈的压入和弹出序列

【题目】      输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这...

2017-12-06 09:55:10

阅读数:39

评论数:0

C++常用操作总结

数组,向量,字符串,栈,队列,链表,字典,集合,文件读写,异常处理

2017-11-30 16:17:13

阅读数:109

评论数:0

C++中的文件输入/输出

简介  本教程将以C++最基本的文件I/O(输出/输出)开始。此后,我将从更深入的方面,为你展示一些技巧,并分析给出一些有用的函数。 你需要对C++有一个较好的理解,否则这个教程于你而言将是陌生而毫无用处。你的第一个程序  首先我将给出一段代码,接着再逐行进行解释。我们的第一个程序将建立一个文件...

2017-11-29 12:06:30

阅读数:66

评论数:0

链表问题---按照左右半区的方式重新组合单链表

【题目】  给定一个单链表的头节点head,链表长度为N,如果N为偶数,那么前N/2个节点算作左半区,后N/2个节点算作右半区;如果N为奇数,那么前N/2个节点算作左半区,后N/2+1个节点算作右半区。左半区从左到右依次是L1 -> L2 ->…,右半区从左到右依次是R1 -> ...

2017-11-21 16:56:37

阅读数:84

评论数:0

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