- 博客(22)
- 资源 (7)
- 收藏
- 关注
原创 深剖基类和派生类的虚函数表
1、当派生类实现基类的虚函数时,基类中虚函数表和虚函数地址和派生类中虚函数表和虚函数地址不同;当派生类不实现基类的虚函数时,基类中虚函数表和虚函数地址和派生类中虚函数表和虚函数的地址相同。1、派生类重新实现虚函数。查看其虚函数表和虚函数表中虚函数的地址 [cpp] view plain copy#include<iostream> using namespace std; clas...
2018-03-31 15:31:53 2494 2
原创 软件测试面试题
1、什么是兼容性测试?兼容性测试侧重那些方面?主要检验的软件的可移植性,检查软件在不同的硬软件平台上是否可以正常的运行。细分可分为:平台的兼容性,网络的兼容性,数据格式的兼容性等。2、常用的测试方法有哪些?黑盒测试,白盒测试,静态测试,动态测试,手工测试,和动态测试,回归测试,公测。3、白盒测试和黑盒测试的区别?黑盒测试就是功能性测试,一般是用穷举法输入测试,不会考虑内部的逻辑和实现。兼容性,安全...
2018-03-19 09:25:13 329
原创 常用的Linux命令
1、Top 查看进程的资源占用的情况。类似于windows中任务管理器。可以选用进程查看或者是用户查看。例如,选择oracel 用户查看,可以使用: $ Top -u oracle2、pmap 可以根据进程查看进程相关信息占用的情况。pmap -d 14596 3、ps -a 显示终端用户上所有的用户,包括其他的用户。 -au 显示详细的信息 -aux 显示所有的包含其他使用者的进程,查看系统...
2018-03-18 15:38:37 154
原创 C++中内存分配的方式
1、栈:函数执行时,函数内的局部变量的存储单元可以在栈上创建。函数执行结束后这些存储单元自动释放。栈内存分配运算内置于处理器的指令器中,效率高,但是分配的内存容量有限。2、堆:就是那些new分配的内存块,由程序员来管理。一般对应着delete。3、自由存储区。就是那些malloc 等分派的内存块。她和堆一样,不过它用free来释放。4、全局/静态存储区。全局和静态变量被分派到统一内存快中。初始化和...
2018-03-16 18:08:38 301
原创 调整数组中的顺序使得奇数位于偶数的前面
1、 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分 设置两个指针,一个指向奇数,一个指向偶数。让第一个指针指向数组的头部,第二个指向数组 的尾部,第一个指针如果指向的数值是偶数,第二个如果指向的是奇数,而且两个指针满足p1<p2的话,则交换。void ReorderOddEven(int *pdata,int ...
2018-03-14 14:06:35 301
原创 二维数组的查找(设计到获取vector大小)
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。class Solution {public: bool Find(int target, vector<vector<int> > array) {bool res=false; ...
2018-03-13 18:37:07 4423
原创 计算蚊帐中有几个文字(科大讯飞笔试题)动态二维数组的创建
#include<stdio.h>#include<iostream>using namespace std;int main(){ int count = 0; int n; cin >> n; const int m = n; int a[3]; for (int i = 0; i < 3; i++) { ...
2018-03-13 17:52:16 231
原创 递归思想斐波那契数列变形
青蛙跳台阶:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。class Solution {public: int jumpFloor(int number) { int n=number; int res=0; if(n==1||n==2) { res=n; ...
2018-03-13 16:08:06 292
原创 输出旋转数组中最小的元素
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路:看成是两个有序序列。class Solution {public: int minNumberInRotate...
2018-03-13 15:08:42 237
原创 C++中纯虚函数与虚函数的区别
1、在一个类中定义一个纯虚函数,则这个类是抽象类。纯虚函数在基类中是不实现的,只是提供一个接口。在子类中分别去实现。在很多情况下,类本身是不生成对象的。动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身生成对象明显不合常理。纯虚函数就是基类只定义了函数体,没有实现过程,定义方法如: virtual void Eat() = 0; 不要 在cpp中定义;纯虚函数相当于接口,不能直接实例化,需要派...
2018-03-13 11:01:18 490
原创 二维数组与指针、指针数组、数组指针的用法
二维数组和指针⑴ 用指针表示二维数组元素。要用指针处理二维数组,首先要解决从存储的角度对二维数组的认识问题。我们知道,一个二维数组在计算机中存储时,是按照先行后列的顺序依次存储的,当把每一行看作一个整体,即视为一个大的数组元素时,这个存储的二维数组也就变成了一个一维数组了。而每个大数组元素对应二维数组的一行,我们就称之为行数组元素,显然每个行数组元素都是一个一维数组下面我们讨论指针和二维数组元素的...
2018-03-12 18:16:20 56528 41
原创 C++中什么情况下必须在初始化列表中完成初始化
1、当类的成员是常变量时,即用const来回修饰的类的成员;2、类的成员是引用;3、需要初始化的数据成员是对象的情况(这里包含了继承情况下,通过显示调用父类的构造函数对父类数据成员进行初始化); 数据成员是对象,并且这个对象只有含参数的构造函数,没有无参数的构造函数; 如果我们有一个类成员,它本身是一个类或者是一个结构,而且这个成员它只有一个带参数的构造函数,而没有默认构造函数,...
2018-03-12 14:28:07 3024
原创 常见的排序算法分析
1、冒泡排序。冒泡排序执行的时间取决于比较的趟数,在最好的情况下,待排序的记录是正序,算法只执行一趟,进行了n-1次关键码的比较,不需要移动记录,时间复杂度是O(N);最坏的情况下,是倒序,每次比较只有一个最大的记录被交换到最终的位置,故算法执行了n-1趟,每次比较的次数是n-i,关键码比较的次数是n(n-1)/2.。平均情况的时间复杂度与最坏的情况是同一个数量级的。空间复杂度o(1). 它是稳...
2018-03-10 16:56:44 439
原创 常见的面试笔试题
1、#include<stdio.h>#include<iostream>using namespace std;void main(){ int c = 5; if (c++ == 5) { printf("%d\n", c--); printf("%d", c); } else { printf("%d",c++); } system("pause"); }答案:
2018-03-09 22:26:59 1942
原创 两个栈实现一个队列
#include<iostream>#include<stack>using namespace std; template<typename T>class Queue{public: Queue(); ~Queue(); void Inqueue(const T& item); bool isEmpty(); T DeleteHead();priva...
2018-03-08 20:15:02 117
原创 常见的二叉树面试题
/*****************************算法思想:使用的是栈结构步骤一:如果节点有左子树,则将该节点入栈;如果该节点没有左子树,则访问该节点步骤二:如果节点有右子树,则重复步骤一;如果没有右子树(则说明该节点文访问完毕),则根据栈顶指示回退,访问栈顶元素,并访问右子树,重复步骤一若栈为空,表示遍历完成。*******************************/#d...
2018-03-08 19:03:26 212
原创 C++中new/delete 和malloc/free的区别
1、new、delete是C++中的操作符,而malloc和free是标准库函数。2、对于非内部数据对象来说,只使用malloc是无法完成动态对象要求的,一般在创建对象时需要调用构造函数,对象消亡时,自动的调用析构函数。而malloc free是库函数而不是运算符,不在编译器控制范围之内,不能够自动调用构造函数和析构函数。而NEW在为对象申请分配内存空间时,可以自动调用构造函数,同时也可以完成对对...
2018-03-08 16:09:26 15130
原创 SQL语句中sum与count的区别
sum(*)对符合条件的记录的数值列求和;count(*)对符合条件的结果个数(或者记录)求和。表fruitid name price1 apple 1.002 pear 4.00select count(price) from fruit; ----执行之后结果为:2 (表示有2条记录)select sum(price) from fruit...
2018-03-07 16:55:09 2173 1
转载 链表中何时用二级指针或一级指针引用
在用c/c++写数据结构程序时,链表和二叉树中经常需要用到二级指针或者一级指针的引用,那么什么时候用什么时候不用呢?先看一个简单的c++链表操作程序:(虽然风格有点像c,不过这个是cpp文件,不要在意这些细节)[cpp] view plaincopy/* code:Linklist author:tashaxing time:2014.9.30 */ #include "stdio.h" ...
2018-03-04 20:16:36 2956 3
原创 链表面试题
1、单链表的创建、插入节点、删除节点、反转等基本操作。#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<iostream>#include<string.h>typedef struct Listnode{ int data; struct Listnode* pnext;}node...
2018-03-04 20:15:04 135
原创 面试总结1
1、MAP的底层结构是什么?查找的最坏的时间复杂度是什么?红黑树。O(logn)2、堆排序和选择排序算法的思想和实现?3、查找最大N个数用最大堆还是最小堆?4、Linux命令中VIM中替换字母和单词的命令?5、Linux中chmod 577是什么意思?6、详述一下vector 的add()和push_back()的原理和实现?7、智力题。一辆车装满油最远可以走L米,两辆车互相可以给对方加油,一共N...
2018-03-02 11:43:49 128
原创 面试总结2
1、C/C++内存泄漏(1)基类的析构函数没有定义为虚函数;(2)缺少拷贝构造函数或重载赋值运算符; 两次释放相同的内存是一种错误的做法,同时可能会造成堆的崩溃。按值传递会调用(拷贝)构造函数,引用传递不会调用。所以一个类中有指针变量时,要么显示的写拷贝构造函数和重载操作符函数,要么禁用拷贝构造函数和重载操作符。 (3)在释放对象数组时,在delete中没有方括号。(4)没有正确清楚嵌套的对象指针...
2018-03-01 18:45:18 95
基于51单片机4层电梯设计
2016-05-30
基于DA14580便携式空气质量检测仪
2016-05-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人