2 QX_a11

尚未进行身份认证

认真生活

等级
TA的排名 12w+

解决missing Change-Id in commit message footer问题

每一个提交都要有一个Change-Id,出现missing Change-Id in commit message footer错误的原因就是change id丢失,解决办法其实强大的git已经告诉你怎么办了:1.在报错的下面几行,就会有这样的命令:直接copy即可2.跟着git提示走就好........

2020-04-01 11:36:57

git pull更新不到最新代码

(一个实习小白。。。。。。。)今天,又发现了一个错误,以前为了方便操作个分支,直接拷贝了仓库(这样完全为了节省时间,拉代码要好久),这样就一个仓库一个分支,比较方便,今天就遇到了一个问题,我想拉远程的最新代码,本地显示已经是最新的代码,使用git log查看,显示最新提交是一个月前,这不合乎情理呀,毕竟每天都有在更新代码。使用git branch -a查看远程分支,只有四个(要知道我们的库的...

2020-03-20 11:29:17

git commit --amend的用法

1、用于修改上次提交。应用场景:在公司,写了一个功能提交到老大,老大看了代码后,眉头一皱balabalba说一堆需要改的地方,你回来改正后,要是直接使用,git add 、git commit -m"xxxxxx"、git push那就等着被吐槽吧,这样提交会让老大那里有两条内容,这时候老大就需要合并才可以。所以为了老大更好的管理提交,你就需要,git add 、git commit --amen...

2020-01-14 17:10:33

【数据结构与算法】Hash表(散列表)、哈希函数、解决哈希冲突

哈希表根据之前学的内容,查找一个关键字需要对待查序列的值一一进行比较;那在查找时能不能使用一种方式减少值的比较?所以就有了哈希表的概念,根据设定的哈希函数及处理冲突的方法将查找表中各数据元素存储在一段有限的连续空间中,即得哈希表,通过将待查记录的关键字值和它存储位置之间建立一个确定的对应关系,则查找时不再进行关键字值间的比较,从而提高查找时的效率。哈希函数:也叫做散列函数,根据关键字值...

2019-05-14 11:01:52

【C++】设计模式——观察者模式

观察者模式观察者模式分为两个角色:观察者和监听者;观察者的作用是观察事件,并且将发生的事件通知给对本事件感兴趣的监听者。监听者的作用是处理发生的事件。其中关键的一步是将监听者和感兴趣的事件保存起来,反过来,一个事件也会由多个监听者处理;对于特定的事件而言,这是一个一对多的关系。基本思路Listener:监听者,执行相应的事件。observable:观察者分为两个模块(1)先利用...

2019-05-12 00:11:09

强符号、弱符号、强引用、弱引用

强符号与弱符号当多个目标文件中含有相同名字全局符号的定义,那么这些目标文件链接的时候会出现符号重复定义的错误。对于C/C++语言来说,编译器默认函数和初始化了的全局变量为强符号,未初始化的全局变量为弱符号。我们也可以通过GCC的"__attribute__((weak))"来定义任何一个强符号为弱符号。需要注意的是强符号和弱符号都是针对定义来说的,而不是引用。如下面的这段程序:exter...

2019-05-11 10:05:04

【linux】目标文件、可执行文件(ELF)格式解析

ELF文件、目标文件、可执行文件的关系目标文件是源代码经过编译但未进行链接的那些中间文件,在linux中的.o文件,它跟可执行文件的内容与结构很相似,所以一般与可执行格式采用一种方式存储,在linux下,我们可以将他们统称ELF文件。ELF文件标准里面把系统中采用ELF格式的文件归为四类:ELF文件类型 说明 实例 可重定位文件(Relocatable File)...

2019-05-10 19:09:39

SQL基本语句(1)

SQL的基本概念数据库:操作数据的集合。SQL语句:管理数据库,字母的大小写不敏感。SQL语句主要分为以下三类:DDL(Data Definition Languages)数据定义语言。定义了不同的数据段、数据库、表、列、索引等数据库对象的定义,简单来讲就是对数据库内部的对象进行创建、。常用的语句关键字包括create、drop、alter、show等。DML(Data Ma...

2019-05-07 12:10:44

预编译、编译、汇编、链接过程

预编译将源代码或者头文件经过预编译成一个.i文件。例如C++文件扩展名是.cpp,头文件的扩展名可能是.hpp,预编译后的文件扩展名是.i预编译的过程相当于下面的命令:对c语言文件的处理:gcc –E 源文件 –o目标文件对c++语言的文件的处理:g++ gcc –E 源文件 –o目标文件例如:gcc –E hello.c –o hello.i预编译需要做的工作:主要处...

2019-05-04 14:34:10

【C++】volatile关键字的作用

volatile的作用volatile关键字是防止在共享的空间发生读取的错误。只保证其可见性,不保证原子性;使用volatile指每次从内存中读取数据,而不是从编译器优化后的缓存中读取数据,简单来讲就是防止编译器优化。在单任务环境中,如果在两次读取变量之间不改变变量的值,编译器就会发生优化,会将RAM中的值赋值到寄存器中;由于访问寄存器的效率要高于RAM,所以在需要读取变量时,直接寄存器中...

2019-04-29 23:59:22

【C++】什么情况下会产生临时变量

临时变量是只在调用期间有效,具有常性的一种变量。一、值传递在返回值以值传递(传值和传指针)的形式返回时,会生成临时变量。int sum(int a,int b){ return a + b;}编译器会将结果a+b的值拷贝给临时变量,最终返回的是临时变量;二、具有引用类型在函数调用中,如果形参是引用的类型的情况下:当实参和形参的类型不匹配会产生临时变量;...

2019-04-28 21:56:45

C与C++的区别(3)——指针与引用

我们在学习c语言的时候,知道函数传参有两种,值传递和地址传递;而在C++中,多了一个引用的概念,引用就是给已存在的变量取了一个别名,编译器不会给引用开辟新的空间,与其引用的变量共用一块空间。引用于指针的区别引用:引用就是对某一变量的一个别名,对引用的操作对变量直接操作完全一致;int a = 10;int *p = a;&在此不是求地址运算,而是起到标识作用。 ...

2019-04-28 17:43:01

C与C++的区别(2)——new和malloc的区别

一、本质区别在C++中引入更多的关键字,比如:new和delete;而malloc和free是库函数,需要头文件的支持;二、申请的空间所在的位置new关键字为对象分配的空间在自由存储区内。而molloc是从堆上分配内存;C/C++内存通常分为:堆、栈、自由存储区、全局/静态存储区、常量存储区;自由存储区:是C++中通过new和delete动态分配和释放对象的抽象概念;...

2019-04-26 21:14:59

C和C++的区别(1)——函数重载

C和C++的区别在C++中,函数重载就是在同一作用域下,函数名相同,而参数列表不同的一组函数;而在C语言中不支持函数重载;这是因为C++编译后在库中的名字与C语言的不同;假设某个函数的原型为void fun(int x,int y)。该函数被C编译器编译后的库中的名字为_fun;而被C++编译器则会产生像_fun_int_int这样的名字。函数重载(1)函数重载指的是同一作用...

2019-04-25 00:04:33

不使用其他判断语句和第三方变量,实现两个数的交换和比较

一提到两个变量的交换与比较,一般首先都会想到使用if、? :、switch等判断语句;但在面试的时候,经常会问到不使用判断语句的情况下,如何实现两个变量的交换和比较?变量a、b找出其中比较大的一个:方法一:int max = ((a + b) + abs(a - b)) / 2方法二:int max(int a,int b){ int c = a - b;/...

2019-04-24 11:51:55

【C++】delete与delete[]的区别

c++中对new申请的内存释放方式有delete和delect[]两种方式,那这两者到底有哪些区别呢?可能你见过这样的表述:用new分配内存,就用delect释放内存;使用new[]分配内存,就用delete[]释放内存。具体来讲就是delect释放new分配的单个对象指针指向的内存,delete[]释放new分配的对象数组指针指向的内存。那为什么会这样呢?关于动态申请的内存,分两种情况:...

2019-04-21 21:38:29

【C++】设计模式之——工厂设计模式的原理与实现

工厂设计模式工厂设计模式提供了生成对象的最佳方法,这一设计模式的优势就在于屏蔽了生成对象复杂的过程。有三种工厂模式,分别为:简单工厂模式 工厂方法模式 抽象工厂模式简单工厂模式原理:工厂生产产品,而这里的产品指的就是对象。在简单工厂模式中,用一个标识对应一个对象的方法,要生成某一产品时,只需要传入对应的标识,这样做的优势是当需要生产大量的对象时,不需要对对象名进行记忆,并且...

2019-04-21 18:20:34

【数据结构】希尔排序

希尔排序将原本大量记录数的记录进行分组。分割成若干个子序列,然后在这些子序列内分别进行直接插入排序,当整个序列都基本有序时,再对全体记录进行一次直接插入排序。基本有序:基本有序的意思就是小的关键字基本在前面,大的基本在后面,不大不小的基本在中间。像{2,1,3,6,4,7,5,8,9};但像{2,9,3,6,4,7,5,8,1}9在第二位,1在倒数第一位就谈不上基本有序。分割策略:将相距...

2019-04-20 18:20:38

【数据结构】直接插入排序以及时间复杂度的分析

直接插入排序直接插入排序的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。完整代码 :#include <stdio.h>void InsertSort(int arr[],int len){ int i = 1; int temp; int j; for(i;i < len;i++) { temp ...

2019-04-20 16:57:43

【数据结构】简单选择排序以及时间复杂度的分析

简单选择排序简单选择排序法就是通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录交换。如图所示:完整代码#include <stdio.h>void SimpleSelectSort(int arr[],int len){ int i = 0; int min;//记录最小值的下标 int temp; for(i;i &l...

2019-04-20 11:19:34

查看更多

勋章 我的勋章
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。