- 博客(9)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 C/C++知识点回顾与总结
本博客总结C/C++的常见知识点,如有问题欢迎提出,转载请注明出处http://blog.csdn.net/qq_34342154/article/details/78876099 一、C和C++的区别 C++在C的基础上增加类 C面向过程,C++面向对象 C主要考虑通过一个过程将输入量经过各种运算后得到一个输出, C++ 主要考虑是如何构造一个对象模型,让这个模型契合与之对应的问题域,...
2017-12-22 19:03:45 732
原创 C/C++常用预处理指令总结(#ifdef,#ifndef,#endif,#pragma once ...)
本文主要记录了C/C++常见预处理指令。包括#include、#define、#ifdef,#ifndef,#endif,#pragma once 什么是预处理指令? 预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符。整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。 预处理指
2017-12-24 22:44:14 861
原创 剑指Offer---表示数值的字符串
【题目】 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串 “+100”, “5e2”, “-123”, “3.1416”和 “-1E-16”都表示数值。 但是 “12e”, “1a3.14”, “1.2.3”, “+-5”和 “12e+4.3”都不是。【基本思路】 字符串应满足通式A[.[B]][e|EC],或者.B[e|EC]。其中,A、C表示有(或无)符号位的数字,
2017-12-24 12:12:42 349
原创 剑指Offer---正则表达式匹配
【题目】 请实现一个函数用来匹配包括’.’和’*’的正则表达式。模式中的字符’.’表示任意一个字符,而’*’表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”和”ab*ac*a”匹配,但是与”aa.a”和”ab*a”均不匹配【代码实现】class Solution { public: bool match(c
2017-12-24 10:33:47 277
转载 C++虚函数表剖析
一、概述 为了实现C++的多态,C++使用了一种动态绑定的技术。这个技术的核心是虚函数表(下文简称虚表)。本文介绍虚函数表是如何实现动态绑定的。二、类的虚表 每个包含了虚函数的类都包含一个虚表。 我们知道,当一个类(A)继承另一个类(B)时,类A会继承类B的函数的调用权。所以如果一个基类包含了虚函数,那么其继承类也可调用这些虚函数,换句话说,一个类继承了包含虚函数的基类,那么这个类也拥有
2017-12-22 19:24:53 252
原创 剑指Offer---和为S的两个数字
【题目】 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。【基本思路】 使用两个指针small和big,small表示第一个数字的位置,big表示第二个数字的位置。初始时,small = 0,big = 数组最后一个位置。如果arr[small] + arr[big] < S,small++;如果arr[small]
2017-12-13 22:00:43 235
原创 剑指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表示连续序列的尾元素,初始时small = 1,big = 2。此时序列的累加和total = 3。如果累加和小于s,则扩大序
2017-12-13 20:31:53 243
原创 剑指Offer---寻找第N个丑数
【题目】 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。【基本思路】 方法一: 如果一个数是丑数,那么这个数,如果能被2整除,就一直除以2,如果能被3整除就一直除以3,如果能被5整除,就一直除以5,最后的结果一定是1。按照这种思路,从数字1开始判断直到
2017-12-10 22:28:20 2538
原创 剑指Offer---栈的压入和弹出序列
【题目】 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)【代码实现】bool IsPopOrder(vector<int> pushV,
2017-12-06 09:55:10 304
C语言常见的问题集
2018-05-22
python3 range()怎么倒着取数并且得到0值
2017-07-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人