
C/C++
文章平均质量分 78
圆觉_
你的核心能力(做成产出)是什么?
展开
-
C++ 结构体所占字节数
在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题。从理论上讲,对于任何变量的访问都可以从任何地址开始访问,但是事实上不是如此,实际上访问特定类型的变量只能在特定的地址访问,这就需要各个变量在空间上按一定的规则排列,而不是简单地顺序排列,这就是内存对齐。 内存对齐的原因: 1)某些平台只能在转载 2017-09-06 12:13:27 · 4980 阅读 · 1 评论 -
malloc/free 与new/delete的区别
malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。1.malloc函数初探首先我们要知道malloc是一个函数,malloc的全称是memory allocation,中文叫动态内存分配。它的原型是:void *malloc(int size);1说明:malloc 向系统申请分配指定s转载 2017-09-06 16:11:54 · 280 阅读 · 0 评论 -
typedef 与#define的区别
以一个例子来说明#define INTPTR1 int*typedef int* INTPTR2; INTPTR1 p1,p2;INTPTR2 p3,p4;其中 p2为 不是int型指针。因为宏定义#define是简单的字符替换,而typedef是定义一种变量类型的别名!!附上typedef的四个用途和两个陷阱用途一: 定义一种类型的别名,而不只原创 2017-09-06 16:26:43 · 246 阅读 · 0 评论 -
楼梯有n阶台阶,上楼可以一步上1阶,2阶,3阶,编程序计算共有多少种不同的走法?
题目:楼梯有n阶台阶,上楼可以一步上1阶,2阶,3阶,编程序计算共有多少种不同的走法?对于这样一个问题,思路:设n阶台阶的走法数为f(n)。如果只有1个台阶,走法有1种(一步上1个台阶),即f(1)=1;如果有2个台阶,走法有2种(一种是上1阶,再上1阶,另一种是一步上2阶),即f(2)=2;如果有3个台阶,走法有4种(一种每次1阶,共一种;另一种是2+1,共两种;第...转载 2017-09-23 23:35:09 · 37814 阅读 · 4 评论 -
寻找丑数,把只包含因子2、3和5的数称作丑数(Ugly Number)
题目:把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。思路:所有丑数都是由前面丑数乘上2,或3,或5得到的。因此丑数按从小到大顺序排列,初始化一个丑数数组a[0...n-1],以及三个临时索引i,j,k.计算a[n] = min{2*a[i], 3*a[原创 2017-09-25 12:39:32 · 3661 阅读 · 1 评论 -
C/C++求职宝典21个重点笔记(常考笔试面试点)
以下都是一些C/C++笔试面试中常考的重点难点问题,但比较基础,适合初学者看。 1. char c = '\72'; 中的\72代表一个字符,72是八进制数,代表ASCII码字符“:”。2. 10*a++ 中a先进行乘法运算再自增(笔试中经常喜欢出这类运算符优先级容易混淆的输出问题)。3. const和static的作用太常见的问题了,下面给出一个较详细的参转载 2017-10-06 17:57:19 · 310 阅读 · 0 评论 -
数制转换C++ & 数据库索引
3、任意数制转换 涉及到数制转换,一般先转换为10进制。再由十进制转换到其他进制——主要操作是除进制数的余数,以及十进制数的商更新,然后取余数存在数组倒序输出;注意是否0-9数字的不同处理。 #include #include #include using namespace std;void ten2other(int org, int m) //十进制数转换原创 2017-10-06 23:14:27 · 480 阅读 · 0 评论 -
快速排序算法 & 面向对象的继承
1、快速排序在平均状况下,排序n个元素要O(nlogn)次比较。在最坏状况下则需要O(n^2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他O(nlogn)算法更快,因为它的内部循环可以在大部分的架构上很有效率地被实现出来。快速排序使用分治策略(Divide and Conquer)来把一个序列分为两个子序列。(有二分的思想),步骤为:从序列中挑出一个元素,作为"基原创 2017-10-05 21:38:42 · 387 阅读 · 0 评论 -
二分查找的递归/非递归方式C++实现
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。二分查找就是将查找的键和子数组的中间键作比较,如果被查找的键小于中间键,就在左子数组继续查找;如果大于中间键,就在右子数组中查找,否则中间键就是要找的元素。二分查找可以用递归方式或非递归方式实现;#include #d原创 2017-10-05 17:27:32 · 621 阅读 · 0 评论