- 博客(35)
- 收藏
- 关注
转载 6.14
--资料来源于网络哈希表解决冲突:1 开放地址法 这个方法的基本思想是:当发生地址冲突时,按照某种方法继续探测哈希表中的其他存储单元,直到找到空位置为止。这个过程可用下式描述: H i ( key ) = ( H ( key )+ d i ) mod m ( i = 1,2,…… , k ( k ≤ m – 1)) 其中: H ( key ) 为关键字 key 的直接哈希地址, m 为哈希表的长度...
2018-06-15 09:47:23
424
转载 6.13
--资料来源于网络写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围) :int Sum( int n ) { return ( (long)1 + n) * n / 2; //或return (1l + n) * n / 2; }输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,...
2018-06-15 09:46:29
235
转载 6.12
--资料来源于网络C++vector容器:vector<int> v;//代表vector容器里面是int型数据vector<vector<int>> vv;//代表容器里面是int型数组,所以vv就是一个二维数组。获取元素个数:int len=v.size();//size是真实占了多少,capacity是预留了多少向里面添加元素:v.push_back(1)...
2018-06-15 09:45:35
291
原创 4.3
synchronous同步的TCP(Transmission Control Protocol) 传输控制协议位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)Sequence number(顺序号码) Acknowledg...
2018-06-08 21:45:39
369
原创 4.2
1.#include <stdio.h> 2.#include <stdlib.h> 3.#include <unistd.h> 4.#include <pthread.h> 5. 6.int golobal_a = 0; ...
2018-06-08 18:15:36
137
原创 static_cast和reinterpret_cast
形式:static_cast<type_id>(expression); 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。用法:1.用在类层次结构中基类和派生类之间的指针或引用的转换。...
2018-06-08 17:02:04
158
原创 牛客刷题
////////知识点:对于内置类型而言,new仅仅是分配内存,除非后面显示加(),相当于调用它的构造函数,对于自定义类型而言,只要一调用new,那么编译器不仅仅给它分配内存,还调用它的默认构造函数初始化,即使后面没有加() int *p=new int[10];只申请了内存空间,里面的值是随机的int *p=new int[10]();申请内存空间,并调用构造函数。////////知识点:分解质...
2018-06-08 15:41:10
497
原创 设置类的成员的对齐
#include<iostream>using namespace std;#pragma pack(push)#pragma pack(4)//结果是12,,,#pragma pack(1)结果是9。。。成员函数不占空间,静态成员也不占空间class CTest{ public: CTest():m_chData('\0'),m_nData(0) {...
2018-06-07 21:34:32
194
原创 分解质因数
(在Ubuntu中编译)#include<iostream>#include<stdlib.h>using namespace std;void decompose_prime(int n){int k=2;if(n>=2){while(n%k) k++;n/=k;cout<<k<<endl;decompose_prime(n);}return...
2018-06-07 20:14:37
281
原创 c++——vector基本知识
/*STL:list string array vectorvector返回值是引用的特性,,下面是三种给vector赋值的方法*/#include<iostream>#include<vector>using namespace std;int main(){ vector<int> v1; v1.push_back(1); v1.push_back(2); ...
2018-06-06 23:09:03
554
原创 inet_addr函数原理
#include<WinSock2.h>#pragma comment(lib,"ws2_32.lib")#include<iostream>using namespace std;/*unsigned long Inet_addr(const char* cp){ unsigned long host=0; char* phost=(char*)&host;//s...
2018-06-05 15:55:23
3251
原创 htonl函数原理
#include<WinSock2.h>#pragma comment(lib,"ws2_32.lib");#include<iostream>using namespace std;unsigned long Htonl(unsigned long lo)//自己实现htonl函数{char* p=(char*)&lo;char t=p[0];p[0]=p[3];...
2018-06-05 12:23:47
4217
原创 UDP通信基础
UDP通信(接收):1.int sock=socket(AF_INET,SOCK_DGRAM,0);AF是address family地址家族,有IPv4 IPv6。。TYPE是udp。。protocol是0,让系统自动选择。socket成功返回02.int i=bind(sock,(sockaddr*)&sa,sizeof(sa)) sockaddr_in sa={AF_INET}; ...
2018-06-05 10:22:20
199
原创 mysql基础
SQL:structured query languages结构化查询语言、浮点型(字段类型):float double decimal,前两个是非精准数,会四舍五入。decimal是精准数,decimal(4,2)代表总长4位,小数点后面2位,如14.12字符串型(字段类型):char(10):是定长的字符串,长度为10.varchar(10)是不定长度的,区别在于前者没到10个长度的话,用空格...
2018-06-04 15:11:30
116
原创 函数指针解析
#include<stdio.h>typedef int (init_fnc_t)(void);int init_1(void){ printf("____1_____\n");return 1;}int init_2(void){ printf("____2_____\n");return 2;}void hang(void){printf("##error##\n");}init...
2018-06-02 10:46:25
167
原创 二叉树————两种按大小存数据方法
#include <iostream>using namespace std;typedef int DATA;struct SNode //除根结点之外的节点{DATA data;SNode* pRight,*pLeft;public: SNode(DATA data):data(data) { pRight=pLeft=NULL; }};SNode* g_pRoot=NULL;//...
2018-06-02 08:21:56
539
原创 二叉树————按数据大小顺序打印
#include <iostream>using namespace std;typedef int DATA;struct SNode //除根结点之外的节点{DATA data;SNode* pRight,*pLeft;public: SNode(DATA data):data(data) { pRight=pLeft=NULL; }};SNode* g_pRoot=NULL;//...
2018-06-01 09:26:58
588
原创 二叉树遍历
#include <iostream>using namespace std;typedef int DATA;struct SNode //除根结点之外的节点{DATA data;SNode* pRight,*pLeft;public: SNode(DATA data):data(data) { pRight=pLeft=NULL; }};SNode* g_pRoot=NULL;//...
2018-06-01 09:05:36
132
原创 c++————牛客(2)
#include <iostream>using namespace std;inline int GetSize(int data[]){ return sizeof(data);}int main(){ int data[]={1,2,3}; int a=sizeof(data); int* data1=data; int b=sizeof(data1); int c=GetSi...
2018-05-31 19:17:29
153
原创 c++————牛客(1)
#include<iostream>using namespace std;class A{ int a,b;public: A(int i):a(b),b(i+1){} //在构造函数后加冒号,是对成员变量初始化a(b),b(i+1)相当于a=b,b=i+1 int get_a(){return a;} int get_b(){return b;}};int main(){...
2018-05-31 16:27:32
151
原创 busybox制作的根文件系统 rcS详解
注:为学习朱有鹏课程做的笔记#!/bin/sh //证明/etc/init.d/rcS确实是一个脚本文件PATH=/sbin:/bin:/usr/sbin:/usr/binrunlevel=S //这是linux runlevel运行级别,从系统开始到结束总共有7个运行级别,S就是single user mode单用户模式,,,除了用第一个字母更多是用数字表示运行级别。。。0是关...
2018-05-27 11:09:30
1138
原创 c++语法--析构函数的偶尔职能:
析构函数函数体,一般是打印信息,因为对象是在栈中,当程序结束时栈也被释放了,不存在内存泄漏。。只有当对象里面还申请了堆空间(成员变量时链表的头指针,成员函数中有add_tail这样的要申请堆空间的),才要在析构函数中去delete内存。。。。class CList{ SNode *m_phead; //默认的是私有成员 链表最重要的就是头节点,头插还是尾插都与头节点有关 ch...
2018-05-26 20:34:07
186
原创 移植busybox做开发板的根文件系统
注:为学习朱有鹏课程做的笔记最小根文件系统:/dev,一切皆是文件,所以硬件设备也被虚拟成设备文件。/sys和/proc是虚拟文件系统,只要创建空文件夹即可,内核运行起来里面会有东西。/etc/usr/libVFS:virtue fs文件系统就是把对存储设备扇区的访问变成对目录和文件名访问虚拟文件系统就是把对硬件设备的访问变成对目录和文件名的访问移植busybox:修改makefilemake m...
2018-05-26 09:20:09
418
原创 /linuxrc
注:为学习朱有鹏课程做的笔记busybox是一个c语言的项目,由很多c文件和h文件组成,可以被配置编译成各个平台的应用程序。linuxrc定义:是一个应用程序,跟内核代码无关是一个可执行程序,用arm-linux-gcc编译如果是静态编译链接的那么直接可以运行;如果是动态编译连接的那么还要给它提供必要的库才能执行。但是这个linuxrc是由内核直接调用执行的,用户没有机会去导出这个库的路径,因此一...
2018-05-24 23:06:10
1583
原创 根文件系统及简单制作
注:为学习朱有鹏课程做的笔记文件系统:为什么需要文件系统???:物理上底层去访问存储设备是按扇区访问的,如果让人的大脑去记忆一个文件放在哪些扇区中,是一件非常痛苦的事情。。。。 假设看几个g的电影,。。。。文件系统就是一套代码,对存储设备的扇区进行管理,把对扇区的访问变成对目录和文件名的访问根文件系统:根文件系统,也是一...
2018-05-24 21:50:16
532
原创 c++语法(1)
申请堆内存: 放一个int型变量int *p=new int; (在C语言中int *p=(int *)malloc(sizeof(int))) delete p; 放一个int型10元素的数组int *p=new int[10]; delete []p; 放一个结构体: struct s { int n; char str[20]; } s *p=n...
2018-05-24 21:46:47
206
原创 内核配置
注:为学习朱有鹏课程做的笔记第一步:make x210ii_qt_defconfig,其实是cp arch/arm/configs/x210ii_qt_defconfig .config,选一个和自己开发板很相似的配置文件,变成自己的配置文件第二步:make menuconfig,文字式图形界面,进行更精准的配置。选择y就会编译链接进zImage中,选择m就是模块化,任然会编译,但不会链接进zIm...
2018-05-20 14:42:44
274
原创 simple_str2ul
unsigned int simple_guess_base(const char* cp){ if(cp[0]==0) { if(cp[1]==x&&cp[2]==isxdigit) return 16;//错误 if(cp[1]==x&&isxdigit(cp[2])) return 16;//正确 else return 8; }...
2018-05-20 11:02:39
182
原创 分析内核目录:
注:为学习朱有鹏课程的笔记 在根目录里Kbuild :kernel build内核编译 arch目录里是不同架构的cpu block表示块设备,以扇区等进行整体访问(不是以字节进行访问),几乎可以认为块设备就是存储设备,外存 crypto里面放了加密算法的实现crc32 md5 init内核初始化代码 ...
2018-05-19 23:19:59
100
原创 第六季HISI
注:为学习朱有鹏课程笔记图像冗余信息:空间冗余:同一幅图片,里面相同的像素。例如编辑器里的底色,就是空间冗余的。时间冗余:一个视频里,上一帧图像和下一帧图像中相同的像素,就是时间冗余的。正因为冗余的存在,原始的图像信息才能被编码压缩。 压缩比:压缩后的图像大小和压缩前的图像大小之比。这个指标越大越好。算法复杂度:图像压缩要靠算法,算法越复杂,对硬件的要求越高,功耗也越高。 还原度:将来解压缩后,...
2018-05-19 14:52:22
158
原创 分析uboot
注:为学习朱有鹏嵌入式课程笔记1.内核由uboot(bootloader)从sd卡(存储介质)搬到(内存里)链接脚本指定地址处运行。2.fastboot命令(是uboot的命令),查看partition table on movinand(sd卡),len=N/A(没明确指出是多少)3.movi read kernel 0x30008000,bootm 0x30008000 从分区中将内核读到内存...
2018-05-18 20:44:28
214
原创 移植三星uboot
注:为学习朱有鹏嵌入式课程的笔记三星uboot移植:(在source insight里改,复制到Ubuntu中,可以写个cp.sh,把复制命令都写进来,再source cp,sh)(解决问题首先要定位,细心查找,总是有效的方法加打印信息)1.屏蔽PMIC模块 uboot运行起来了,但是很多配置错误、2.打开smdkv210single.h, 三星开发板和九鼎开发板只是板级区别,soc cp...
2018-05-18 20:42:10
170
原创 浅述同步和互斥机制
1.以下几种情况可能发生竞态:对称多处理器的多个cpu共同访问外设和存储器;中断与进程访问共享资源;高优先级进程抢占低优先级进程;高优先级中断打断低优先级中断。解决 竞争状态 途径是保证对共享资源的互斥访问。解决的关键是 分析并发源,划定临界区,选择适合的操作系统提供的机制。2.互斥机制:屏蔽中断:由于linux内核的进程调度也是通过中断实现的,所以屏蔽中断也可以避免进程的并发,实质上,除了对称多...
2018-05-11 19:33:40
844
原创 mt7601u让开发板上网 后续
1.以下几种情况可能发生竞态:对称多处理器的多个cpu共同访问外设和存储器;中断与进程访问共享资源;高优先级进程抢占低优先级进程;高优先级中断打断低优先级中断。解决 竞争状态 途径是保证对共享资源的互斥访问。解决的关键是 分析并发源,划定临界区,选择适合的操作系统提供的机制。2.互斥机制:屏蔽中断:由于linux内核的进程调度也是通过中断实现的,所以屏蔽中断也可以避免进程的并发,实质上,除了对称多...
2018-05-11 19:29:51
712
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人