- 博客(55)
- 收藏
- 关注
原创 Makefile文件以及静态库和动态库
在Linux下写项目总会碰见这样的情况------哎呀~~这个项目的文件需要好多文件一起编译,这么多,眼睛快花了。我去!少编译一个,又要重新打了,心态炸了。。。。 //(T o T)//makefile文件目的是为了方便工程管理,当面临你写了很多个源文件的时候这个时候为了简化你的大量重复编译而设计出来的途家,再者很多项目就编译就要很长时间,改3次代码编译三次一天就过去了,啥也没干...
2019-08-17 22:01:02
3484
1
原创 gdb 常用的调试命令都有哪些?
刚学习linux的小伙伴是不是总会面临一个问题,那就是代码出现BUG的问题,那么如何去解决就需要大家学会使用GDB的调试工具啦!下面是我总结的一些我经常用的调试命令GDB 调试常用命令:1) l 显示代码 l 1(行号)显示第一行, l add.c(文件名):3 跳转到add.c 的第三行2) b:加断点 b+行号 b+函数名3) info bre...
2019-08-17 21:34:57
575
原创 Linux基础
目录结构/boot启动Linux时使用的一些核心文件,包括一些连接文件和镜像文件;/binbinary,存放最常使用的命令;/lib存放着系统最基本的动态连接共享库;/home用户的主目录/devdevice,存放Linux的外部设备;在Linux中,访问设备和访问文件的方式是相同的;/usr用户的很多应用程序和文件/var存放在不断扩...
2019-08-14 11:49:17
119
原创 实现简单的Vector容器
#include<iostream>#include<stack>using namespace std; template<typename _Ty> //模板使得开辟的空间由传入的值类型决定class Vector{public: typedef _Ty value_type; //首先呢我们定义一下值类型public: Vecto...
2019-08-14 10:38:38
166
原创 单例模式
单例模式是最常用到的设计模式之一,熟悉设计模式的朋友对单例模式都不会陌生。一般介绍单例模式的书籍都会提到饿汉式和懒汉式这两种实现方式。下面接下来让我们一起来看看吧简介单例模式(Singleton Pattern)是 最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创...
2019-08-14 10:07:50
133
原创 STL 中的迭代器失效的问题
C++ STL 库中的容器迭代器相信大家都不陌生,用一个迭代器遍历一个容器的通用做法如下:vector<int>::iterator it = vec.begin();for(; it!=vec.end(); ++it){cout<<*it<<" ";}cout<<endl;那么容器的迭代器什么时候就失效了呢?请看如下的两个例子...
2019-08-03 22:34:57
211
原创 map&set 容器的实现原理
C++ STL 的 set 和 map 容器底层都是由红黑树来实现的,因此 map 和 set 的实现原理就是红黑树的实现原理,其中 map 是用来存储键值映射对的,它把【key,value】打包成pair 对象存储在红黑树结构上,元素都是经过排序的,因此可以在 O(log2n)的时间复杂度内对 set 和 map 进行增删查操作,效率非常高。对于红黑树的阐述,以下罗列一些基本信息,更详细的红黑...
2019-08-03 22:30:45
1287
原创 struct 和 class 的区别
A. struct 在 C 语言里面是定义结构体的,在 C++语言用 struct 定义的都是类,因此在 C++中:struct 可以包含方法吗?能!能写访问限定符吗?能!能实现继承多态吗?能!默认继承时,基类用 struct 或者 class 定义,继承方式有区别吗?有!一个是 public 继承,一个是 private 继承。定义模板参数列表时,class 能用来定义模板类型参数,st...
2019-07-31 19:28:14
132
原创 栈和堆的大小,申请一个整形数组最大可以达到多少(linux(不同的内核版本)和 windows)
解答这个问题的系统和编译器版本有两种,如下:1)x86 32bit linux-redhat 2.6.32-279.el6.i686 gcc-4.4.62)win7 64bit 32bit-VS2013其它系统的情况,请大家自行进行测试,原理都是相同的。要考虑堆和栈的大小,需要先考虑以下几个问题:1)当前系统进程虚拟地址空间有多大,用户空间和内核空间是怎么划分的2)实际物理内存的大小...
2019-07-31 19:16:01
1905
1
原创 指针与引用的差别?
1)非空差别。在任何情况下都不能使用指向空值的引用。一个引用必须指向某些对象。因此你如果使用一个变量并让它指向一个对象,但是该变量在某些时候可能不指向一个对象,这时你应该把变量声明为指针,因为这样你才可以赋空值给变量,相反,如果变量肯定指向一个对象,例如你的设计不许变量为空,这时你就可以把变量声明为引用,不存在指向空值的引用这个事实,意味者引用的代码执行效率更高。2)合法性区别。在使用引用之前...
2019-07-24 22:34:41
125
原创 内联函数相关知识总结
内联函数和static的区别1)内联函数没有清栈开销,static有清栈开销;2)inline因为变异阶段代码展开,函数文件可见static 符号属性为l(local)本文件可见内联函数和宏的区别内联函数和普通函数相比可以加快程序的速度,因为不需要中断调用,在编译的时候内联函数可以直接镶嵌在目标代码中。而宏只是一个简单的替换。内联函数要做参数类型检查,这是内联函数和宏...
2019-07-23 22:57:32
257
原创 sizeof的相关知识总结
sizeof常见情况#include<iostream>#include<stdio.h>#include<string.h>using namespace std;stuct{short a1;short a2;short a3;}A;stuct{short a1;long a2;short a3;}B;int main();...
2019-07-23 22:28:55
544
原创 有关const关键字总结
const修饰指针的情况int b = 500;const int * a = &b //情况1int const *a = &b //情况2int* const a = &b //情况3const int* const a = &b//情况4 1)先看情况1如果const位于*号的左侧,则const就是用来修饰...
2019-07-22 22:04:46
291
原创 C语言里struct和union的区别
struct和union是C语言的两种数据结构,这两种都是常用的复合结构。区别:(1) 联合体:所有成员共用一块地址空间,也就是说联合体只放了一个被选中的成员; 结构体:所有的成员的内存占用是累加的,其所有成员都存在,不同成员会放在不同地址;在计算一个结构体变量的总长度时,其内存空间大小等于所有成员长度之和(需考虑字节对齐);而在联合体中,所有成员不能同时占用内存空间,...
2019-03-12 00:22:04
3368
原创 判断闰年
#include <stdio.h> int main(){ int year; printf("输入年份: "); scanf_s("%d",&year); if(year%4 == 0) { if( year%100 == 0) { // 这里如果被 400 整数是闰年 ...
2018-07-16 12:27:53
159
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人