自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

htt789的博客

fighting

  • 博客(27)
  • 收藏
  • 关注

原创 C++13:内存分配方式

程序存在三种内存方式:静态内存、栈内存、堆内存 静态内存: 在编译时期,知道所有变量的存储要求 全局变量,static变量栈内存: 在运行时期,已知数据结大小。 在执行函数时,函数内局部变量,函数执行结束时这些存储单元自动被释放。堆内存: 在运行时期,无法确定数据大小。比如可变长度串和对象实例.堆由大片的可利用块或空闲块组成,堆中的内存可以按照任意顺序分配和释放. mallo...

2018-07-30 20:33:27 206

原创 C++知识点12:继承和组合

继承特性:依据一个或多个基类来定义一个新的派生类(子类获得父类特性)作用:程序易于创建和维和;重用代码功能;提高执行时间(创建新类时不需要重新编写新的数据成员和成员函数)继承控制访问:派生类可以访问基类中所有的非私有成员,一个派生类继承了所有的基类方法,但下列情况除外: 基类的构造函数、析构函数和拷贝构造函数。 基类的重载运算符。 基类的友元函数继承类型:1....

2018-07-19 16:58:07 314

转载 C++知识点12:深拷贝浅拷贝

原 C++(笔记)深浅拷贝and何时调用 2017年03月23日 22:23:44 阅读数:612 ...

2018-07-19 10:24:07 191

原创 C++知识点11:内联函数 / 内联函数和宏define的区别

关键字:inline,写在函数定义体前(不是声明) 作用:解决程序运行效率,不需要调用函数而是将函数直接嵌入到目标函数处。内联函数是真正的函数,只是在需要用到的时候,内联函数像宏一样的展开,所以取消了函数的参数压栈,减少了调用的开销。 运行时间:作用于程序编译的阶段,将函数直接嵌入到目标函数处inline int max(int a,int b){ return a>b?a:...

2018-07-17 10:54:26 227

原创 linux基本指令

1.查看进程 ps

2018-07-17 09:21:05 225

转载 C++知识点10:程序编译四个阶段

1.编译过程的四个阶段源程序到目标程序执行的四个阶段如图1所示,GCC编译C源代码有四个步骤:预处理—->编译—->汇编—->链接。 以源程序hello.c为例12#include <stdio.h> int main(){ printf("ha

2018-07-17 09:18:33 2085 2

原创 C++知识点10:构造函数和析构函数

构造函数:生成对象时调用构造函数 生成派生类对象时先调用基类构造函数在调用派生类构造函数#include <iostream>using namespace std;class base{public: base(){cout<<"base"<<endl;} virtual ~base(){}};cl

2018-07-16 17:15:37 274

原创 C++知识点9:virtual虚拟函数

虚函数:基类中加入关键字virtual的函数 作用:在基类的派生类中可以通过重写虚函数实现对基类虚函数的覆盖。 当基类指针指向派生类对象时,指针调用的函数实际上是调用了派生类的函数。基类函数中有virtual关键字 输出结果:derived//调用派生类函数#include <iostream>using namespace std;class base{p...

2018-07-16 16:39:09 651

原创 面试题32:从上往下打印二叉树

思路: 1.将树的根节点加入到队列。 2.取队列的头节点,将头节点对应的数值打印。若头节点有子节点,将子节点添加进队列,并将头节点从队列中弹出。 3.当队列为空时,停止打印。vector<int> PrintFromTopToBottom(TreeNode* root) { vector<int> result; if(root==...

2018-07-16 11:17:06 109

原创 面试题31:栈的压入、弹出序列

题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) 解题思路: 1.建立一个辅助栈,将栈的压入序列压入到辅助栈中 2.压入一个元素就...

2018-07-16 10:20:39 92

原创 面试题29:顺时针打印矩阵

vector<int> printMatrix(vector<vector<int> > matrix) { if(matrix.empty()) cerr<<"wrong input" ; int raw_end=matrix.size()-1; int col_end=mat...

2018-07-14 09:54:59 126

原创 面试题27:二叉树的镜像

题目描述:操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 ...

2018-07-12 21:14:44 128

原创 面试题26:树的子结构

题目描述:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 解题思路: 1.在树A中查找与树B根节点相同的节点R,从树A的根节点开始遍历,若在树A中找到与树B根节点相同的节点R则继续比较节点R的左右子树是否与B相同。 若A的根节点与B的根节点相同,则比较A的根节点的子树是否与树B相同(第二步); 若A的根节点与B的根节点不同,则继续向下遍历树A...

2018-07-12 16:50:47 119

原创 面试题25:合并两个排序的链表

题目描述: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 测试用例:特殊输入 1.两个链表头节点都为空,返回空 2.有一个链表节点为空,返回另一个链表的头节点 解题思路: 1.合并两个链表从两个链表的头节点开始,比较两个头节点,找到较小的那个作为新链表的头节点。 2.将去掉头节点链表的指针向后移一位,剩下两个链表依然是递增排序的。继续比...

2018-07-12 10:54:38 105

原创 面试题24:反转链表

题目描述: 输入一个链表,反转链表后,输出新链表的表头。解题思路: 反转链表的头节点是原链表的末位节点 设置节点的前一个节点指针pPre,链表反转相当于节点的下一个节点为节点的前一个节点。 1.从头开始遍历链表,反转链表之后,原链表的第一个节点为反转链表的最后一个节点,因此反转后第一个节点的下一个节点为NULL,所以将pPre初始化为NULL。 2.向后遍历原链表(节点指针、前节...

2018-07-12 09:49:46 241

原创 面试题22:链表中倒数第k个节点

ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { if(pListHead==NULL||k==0) return NULL; ListNode *p1=pListHead; for(int i=1;i<k;i++){ ...

2018-07-11 20:41:42 102

原创 面试题18:删除链表中重复节点

题目描述:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 1.新建p1指针记录新

2018-07-11 17:13:26 280

原创 面试题21:调整数组顺序使奇数位于偶数前面

题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 解题思路: 1.两个指针分别指向数组的前面和后面 2.前面的指针向后移,直到遇到偶数 3.后面的指针向前移,直到遇到奇数 4.交换两个数字(第一个指针总是在第二个指针的前面) 5.前指针继续向后移,后指针...

2018-07-11 14:27:49 126

原创 面试题16:数值的整数次方

题目:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 解题思路: 考虑边界值情况:底数,指数分别为正、负、0 底数是0,指数为负 1.底数是0,指数是负->输入无效,错误处理,返回0.0 2.底数是0,指数是0->没有意义,返回0 3.底数是0,指数是正->0 4.底数是1,指数是正、负、0->1...

2018-07-10 14:16:43 98

原创 面试题15:二进制z中1的个数

题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 解题思路:整数n减去1,再和n做与运算,把整数最右边的1去掉。int NumberOf1(int n) { int count=0; while(n){//n的所有1变成0,n变成0 n=(n-1)&n; count...

2018-07-09 21:35:09 183

原创 面试题11:旋转数组的最小数字

题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 解题思路: 输入的数组为非减排序数组的旋转,数组分为两个排好序的数组。{3,4,5,1,2}其中前半部分{3...

2018-07-09 15:13:06 4230

原创 面试题10:斐波那契数列+跳台阶

题目:斐波那契数列思路:为了避免重复计算,将中间数保留起来。 当n>1时,上一次加法的参数和结果用于本次。 时间复杂度O(n) 注:数据类型为long longint Fibonacci(int n) { long long result; if(n==0||n==1) result=n; long l...

2018-07-09 10:35:47 219

原创 循环与递归

递归定义:在函数内部调用函数自身缺点:每一次调用函数需要在内存栈中分配空间,用来保存参数,返回地址及临时变量 1.时间消耗:往栈中压入、弹出数据需要时间 2.空间消耗:调用栈溢出;每一次调用在栈内分配空间,但栈的容量是有限的,调用层级太多则会超过栈容量循环性能由于递归,但代码没有递归简洁...

2018-07-07 11:08:59 130

原创 分支管理

1.创建分支git branch name2.切换到当前分支git checkout name创建+切换git checkout -b name3.查看当前分支git branch *为当前分支 4.合并某分支到当前分支git merge name5.删除分支git branch -b name...

2018-07-06 15:38:21 124

原创 git添加远程库并推送最新版本

1.创建一个新的仓库 在Repository name填入与本地仓库目录一样的名称“git_learn”2.从远程库克隆进入本地目录git clone git@github.com:httbupt/git_learn 或git clone https://github.com/httbupt/git_learn3..本地仓库推送至远程库 其中远程库的名字是o...

2018-07-06 14:47:44 854

原创 git使用

1.安装 命令安装 源码安装 查看git安装成功git --version2.创建git仓库cd 已存在的目录git init 当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库3.添加/提交文件 在工作区下git add <path/file>4.提交到仓库 -m 后面“Adding files”为本次提交的说明git...

2018-07-06 11:24:53 141

原创 cmake使用eigen库

Eigen是一个C++开源线性代数库:提供矩阵的线性代数运算。 注:Eigen是一个只有头文件的库cmake使用eigen库find_package(Eigen3)INCLUDE_DIRECTORIES(${EIGEN3_INCLUDE_DIR})程序中使用eigen库,引用各功能头文件#include<Eigen/core>...

2018-07-02 11:35:45 16487 1

wpa-supplicant初始化

wpa-supplicant初始化

2023-06-18

空空如也

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

TA关注的人

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