4_20
文章平均质量分 58
Hot_D
python java C++
展开
-
C/C++ 变量作用范围,参数传递方式
全局变量所占用的空间在内存的数据区,局部变量以堆栈的形式允许反复占用和释放函数的声明,定义,参数传递,重载void swap(int&, int&);void swap(int &x, int &y){int temp; temp = x; x = y; y = x;}swa(2,3);值传递,传递一个副本,不影响原始值引用传递,存放的是实参变量的地址默认参数,从右...原创 2018-04-20 09:45:43 · 317 阅读 · 0 评论 -
计算机网络相关基础
报文,需要发送的整块数据报文交换,整个报文先传导向临界点,全部存储下来后查找转发表,转发到下一个结点分组,报文分成等长的数据段,然后加上必要的首部,即为分组分组交换,单个分组传送到相邻结点,存储下来后查找转发表,转发下一个结点实体:任何可以发送或接收信息的硬件或软件进程。协议:控制两个对等实体(或多个)进行通信的规则的集合。服务:在协议的控制下,两个对等实体间的通信使得本层能够向上一层供服务。下面...原创 2018-06-07 20:10:12 · 156 阅读 · 0 评论 -
归并排序,递归实现和迭代实现
归并排序:时间复杂度O(nlogn)空间复杂度O(n+logn)比较占用内存,但却效率高且稳定的方法#define MAX_SIZE 55int num[] = {2,3,4,5,3,2,4,52,2};int len = 9;int* tr2 = new int[MAX_SIZE];void mergeSort(int num, int len)// 递归实现版本...原创 2018-05-24 21:37:47 · 433 阅读 · 0 评论 -
C++, 堆排序
堆排序,是一种不稳定的排序方法,包含两个过程,构建堆和调整堆构建堆的过程,要从下往上,从右往左;从有孩子的左节点开始往上调整。构建完成后,交换堆顶元素和堆尾元素,然后对剩余元素重新调整成堆时间复杂度:整个堆的构建为O(n)重建堆的时间复杂度为O(nlogn)总体来说,堆排序的时间复杂度为O(nlogn)int num[7] = {2, 3, 4, 5, 2, 3, 1};int length =...原创 2018-05-24 10:58:40 · 135 阅读 · 0 评论 -
Kruskal 最小生成树 并查集
typedef struct { int vexNum; int edgeNum; int arc[N][M];}myGraph;typedef struct { int data; int begin; int end;}edges;void kruskal(myGraph t)// 其实是有两个连通的边集合,就是按照规定一个个连通支合并的过程,最后只剩一个连通支/...原创 2018-05-22 11:35:43 · 232 阅读 · 0 评论 -
最小生成树 Prim
#define max INFINITYtypedef struct myGraph{ int num; int arc[m][n];}Graph;void Prim(Graph t)//Prim //把节点划分为两个集合,标记集合和未标记集合//维持一个记录表,里面是所有未标记集合到已标记集合的边的相应最小权重,lowerCost//每次从记录表中选取从小的权重,把此边的未标...原创 2018-05-21 22:29:48 · 136 阅读 · 0 评论 -
斐波那契查找
斐波那契查找:大于n且最接近n的数值, n >= f[k]-1 && n < f[k+1]-1 middle = f[k] - 1;问题1. 为什么要把数组长度扩充为 F[k]-1,而不是 F[k] 或者 F[k+1]这是为了能够争取的计算 mid 值,F[k]-1 = (F[k-1] + F[k-2]) - 1 = (F[k-1] - 1) + 1 + (F[k...原创 2018-05-21 20:33:33 · 130 阅读 · 0 评论 -
STL模板库,C++
static 静态成员解决的是同一个类不同对象之间数据和函数的共享问题同一个类的不同对象的静态成员均使用同一个内存空间静态成员函数不存在this指针对象要在创建的同时自动调用构造函数,在消亡之前自动调用析构函数,需要一个能动态内存分配和初始化工作的运算符new,以及一个能完成清理与释放内存工作的运算符delete,但malloc和free是库函数,无法满足要求STL - vector, list,...原创 2018-04-28 15:56:22 · 136 阅读 · 0 评论 -
C++,文件和流, 析构函数和调用delete this
参考链接 点击打开链接C++文件和流标准库,fstream,iostreamofstream 表示输出文件流,用于创建文件并写入信息ifstream 表示输入文件流,用于读取文件信息fstream 表示文件流,具有上述两种功能void open(const char *filename, ios::openmode mode);void close();打开模式:#include<fstre...转载 2018-04-27 16:34:30 · 414 阅读 · 0 评论 -
指针函数,指针数组,指针常量
指针数组,内部元素全是指针的一个数组int *a[5]; char *arr[4] = {"hello", "world", "shannxi", "xian"};//arr是一个指针数组,它有四个元素,每个元素是一个char *类型的指针,//这些指针存放着其对应字符串的首地址。数组指针,指向某种类型数组的一个指针int (*a)[5];指针函数,带指针的函数,返回类型是某一类型的...原创 2018-05-11 11:35:46 · 160 阅读 · 0 评论 -
运算符重载为成员函数,友元函数
重载运算符是函数重载的一种,针对类对象进行操作,重载的函数中至少有一个是类对象int operator +(ass numone, int num){...}重载为类的成员函数,单目运算符重载-操作数是访问本身的数据,由this指出双目运算符重载-左操作数由this指针给出,右操作数由函数参数给出显示调用-aa.operator(bb);隐式调用-aa++bb;重载为友元函数,单目重载运算符时,由...原创 2018-04-26 16:24:19 · 1002 阅读 · 0 评论 -
vectro 常用方法,const相关,
在c++函数里面,如果把一个数组作为参数传进去,那么这个数组就会退化成一个指针,就不知道这个数组的长度了。sizeof(a) / sizeof(a[0]);定位new运算符能够在分配内存时指定内存地址。char *buff = new char[99];Justing *pc1;pc1 = new(buff) Justing; //place object in buff栈,自动变量开辟空间,速度...原创 2018-04-25 20:42:29 · 222 阅读 · 0 评论 -
虚函数与抽象类
虚函数 1, 虚函数是非静态的、非内联的成员函数,而不能是友元函数,但虚函数可以在另一个类中被声明为 友元函数。 2, 虚函数声明只能出现在类定义的函数原型声明中,而不能在成员函数的函数体实现的时候声明。 3, 一个虚函数无论被公有继承多少次,它仍然保持其虚函数的特性。 4, 若类中一个成员函数被说明为虚函数,则该成员函数在派生类中可能有不同的实现。 当使用该成员函数操作指针或引用所标识的...原创 2018-04-25 20:33:02 · 1973 阅读 · 0 评论 -
继承,构造函数
继承方式-private, protected, public,默认是私有继承继承形式-class b:public A{...};基类的私有成员在派生类是隐藏的私有继承时,基类的公有成员和保护成员改变为私有成员公有继承时,公有成员和保护成员仍是如此保护继承时,公有成员变为保护成员在没有继承的情况下,protected跟private相同。在派生类的时候才出现分化。基类对象不能访问基类的prote...原创 2018-04-25 19:59:44 · 122 阅读 · 0 评论 -
结构体和类,构造函数
1.C的结构体和C++结构体的区别(1)C的结构体内不允许有函数存在,C++允许有内部成员函数,且允许该函数是虚函数。 所以C的结构体是没有构造函数、析构函数、和this指针的。(2)C的结构体对内部成员变量的访问权限只能是public,而C++允许public,protected,private三种。(3)C语言的结构体是不可以继承的,C++的结构体是可以从其他的结构体或者类继承过来的。...原创 2018-04-25 10:22:55 · 1199 阅读 · 0 评论 -
const相关,指针相关,数组相关
#include<head.h>#include"head.h"int a = 3, c = 2;const int* b = &a;*b = 8; // errorb = &c; // right//const用来修饰指针所指向的变量,还是指针;可以修改指针指向地址,但不能直接修改指向内容int* const b = &a;*b = 8; /...原创 2018-04-24 22:51:17 · 143 阅读 · 0 评论 -
sizeof操作符, strlen函数,字符数组作为参数
strlen 是计算字符串的长度,从内存中的某个位置开始扫描,遇到‘\0’结束,sizeof 计算的是占用内存的大小一个指针占得内存4个字节,所以 sizeof(m)/sizeof(int) 结果是1strlen是库函数,需要包含"string.h"头文件sizeof是操作符数组做sizeof的参数时不退化,传递给strlen就会退化为指针。数组作为参数传递给函数时,传的是指针而不是数...原创 2018-05-02 09:58:49 · 663 阅读 · 1 评论 -
最短路径算法,Dijkstra, Floyd 算法
Floyd方法真是简洁,时间复杂度是O(n^3),是所有顶点之间的最短路径Dijkstra求的是源点到其它点之间的最短路径,如果要求所有点之间的最短路径,时间复杂度还是O(n^3)const int maxint = 65535;const int maxnum = 10;int dist[maxnum];int prev[maxnum];int a[maxnum][maxnum];v...原创 2018-05-31 20:26:23 · 432 阅读 · 0 评论