- 博客(16)
- 收藏
- 关注
原创 Linux--makefile的使用
概述 在工程中,一个工程有多个源文件,按类型、功能、模块分别放在不同的目录中,makefile定义了一系列的规则来指定,文件编译的一系列操作;make是一条命令,makefile是一个文件,两者搭配使用,完成项目的自动化构建;makefile的书写规则[目标文件]:[依赖文件1] [依赖文件2] ... ...例:test.i:test.c gcc -E test.c ...
2018-05-18 15:15:32
254
原创 C++--模板
函数模板和模板函数定义:函数模板可以用来创建通用的函数(该函数被称为模板函数),支持任意类型的形参和返回值,避免重载函数的函数体重复设计;函数模板格式:template<class 形参1, class 形参2, ... , class 形参n>返回类型 函数名( 参数表 ){ ...}模板形参的定义既可以使用class,也可以使用typename,二者含义相同;例:#incl...
2018-05-16 20:16:55
523
原创 Linux--gdb的使用
什么是gdbgdb是一个用来调试C和C++程序的调试器,能通过它进行一系列调试工作,包括设置断点、观查变量、单步等;使用须知:程序的发布方式有两种,debug模式和release模式;Linux gcc/g++出来的二进制程序,默认是release模式;要使用gdb调试,必须在源代码生成二进制程序时,加上-g选项;使用步骤及命令:编译源程序,gcc -g file.c;使用gdb调试,gdb a....
2018-05-08 15:13:53
313
原创 Linux--gcc的使用
gcc编译常用命令:假设编译.c源文件(1)无选项编译链接 命令:gcc test.c 作用:将test.c预处理、编译、汇编和链接形成可执行文件,默认输出为a.out;(2)选项 -o命令:gcc test.c -o test作用:将test.c预处理、编译、汇编和链接形成可执行文件test,-o用来指定输出文件名及格式;(3)选项 -E命令:gcc -E test.c -o test.i作...
2018-05-08 14:06:33
320
原创 Linux--vim的使用
什么是vimvim是一个文本编辑器,可用来编辑文字,代码等;vim的使用vim有三个基本模式,分别是命令模式(command mode),插入模式(insert mode)和底线模式(lase line mode),各模式的作用如下:命令模式:用户刚启动vim,便进入了命令模式。以下是常用的几个命令:切换模式:i 切换到插入模式;R 切换到替换模式;: 切换到底线模式。在最底行输...
2018-04-30 18:40:19
240
原创 C++:虚函数、虚表和纯虚函数
1.虚函数定义:用virtual修饰的成员函数称为虚函数;重写(覆盖):当在子类中定义了一个与父类完全相同的虚函数时,则称这个子类的函数重写(或覆盖)了父类的函数;例:#include<iostream>using namespace std;class Person{public: virtual void BuyTicket() { cout<<"Pr...
2018-04-30 15:07:50
2240
原创 C++继承
1.三种继承方式C++继承分为公有继承(public),保护继承(protected)和私有继承(private);(1)公有继承(public) 基类的共有成员和保护成员作为派生类的成员时,保持原有状态,而基类的私有成员仍旧是私有的,不能被这个派生类所访问;(2)保护继承(protected) 基类的公有成员和保护成员都变成派生类的保护成员,只能被派生类的成员函数或友...
2018-04-27 11:19:37
290
原创 C++引用
引用引用不是定义一个新的变量,而是给一个已经定义的变量重新起一个别名;格式: 类型& 引用变量名 = 已定义过的变量名;引用的特点1.引用必须初始化;int a;int& b = a;//正确int& c;//错误,没有初始化2.引用声明完后,不能再把该引用名作为其他变量的别名;int a;int b;int& c = a;int& c = ...
2018-03-20 17:23:15
210
原创 C++介绍及其重载、缺省参数函数、命名空间
介绍C++C++是C语言的继承,它是既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点为特点的面向对象的程序设计语言。重载函数重载是指同一个函数名可以对应多个函数实现,函数名相同而参数列表不同的函数就是函数的重载。例如对Swap()交换函数进行重载,可以实现两个整数的交换,两个小数的交换,两个字符的交换······函数重载规则:函数名...
2018-03-20 15:50:17
299
原创 Linux
初学Linux的一些指令:文件和目录操作:ls 查看目录ls -a 查看所有目录和文件,包括隐藏文件ls -l 显示文件和目录的详细信息ls *[0 - 9]* 显示包含数字的目录名和文件名cd /home 进入home目录cd .. 返回上一级目录cd ../.. 返回上一级的上一级目录cd - 返回上次所在目录pwd 显示当前路径touch ...
2018-03-12 15:06:16
238
原创 结构体...
结构体类型创建1.有名结构体的定义方式(1)声明结构体的同时,定义结构体struct Stu //Stu为结构体名{ char name[10]; char sex[5]; //结构体成员 short age;}student1,student2; //student1,student2为结构体变量(2)先声明,后定义struct Stu ...
2018-03-05 18:30:36
830
原创 面试题—哈希,位图,布隆,倒排索引
哈希切割top K问题 给一个超过100G大小的log file, log中存着IP地址, 设计算法找到出现次数最多的IP地址?解题思路: 由于是100G文件,文件太大不能完全加载到内存中去,所以将文件分成1000份,每份大约500M,计算机内存完全可以存下。 那么如何统计相同IP的次数,这里运用哈希切分,使用散列函数(如BKDRHash)依次将所有文件的IP地址转为整...
2018-03-03 19:14:34
1074
原创 C语言可变参数表函数实现原理分析
在C语言中,例如printf(),main()函数等都为可变参数表函数,那么其实现原理是什么?例:求几个数的平均值代码:#include<stdio.h>#include<stdarg.h>int average(int val,...){ int i = 0; int sum = 0; va_list arg; va_start(arg,val); fo...
2018-02-10 13:48:24
366
原创 三字棋
程序有两个文件:ALL.h文件和szq.c文件ALL.h文件#ifndef _Game_H_#define _Game_H_#include#include#include#define ROWS 3#define COLS 3void InitBoard(char board[ROWS][COLS] ,int row ,int col );void Displa
2017-10-27 15:12:52
485
原创 扫雷
程序分为两个文件:all.h文件和SL.c文件all.h文件#ifndef _Game_H_#define _Game_H_#define ROW 10#define ROWS ROW+2#define COL 10#define COLS COL+2#define MineNum 10 //地雷数量void menu();//打印菜单void Game();/
2017-10-27 14:52:04
308
原创 c语言操作符
1.算数操作符+ - * / %两整数相除,结果为整数;例:5/2=2若有一个是浮点数,则结果为浮点数;例:1.0/2=0.5取余只能用在整数中,不能用在浮点数中;2.位移操作符>例:>3右移包括:逻辑右移—右边丢弃,左边补0算数右移—右边丢弃,左边补符号位不能写成:>-2;3.位操作符&按位与|按位或^按
2017-10-13 20:48:10
217
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人