自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 数据结构(五)

/第一步确定区轴(关键字)元素的位置, 对整个待排序序列按照区轴元素分隔为两个部分,一部分是比区轴元素小的元素的集合,另外一个部分是比区轴元素大的元素的集合;基本思想: 通过一趟排序,将待排序序列分隔为两个独立的部分,一部份是比关键字小的记录的集合,另外一个部分是都比关键字大的记录的集合;桶排序,顾名思义,会用到"桶",核心思想是将要排序的数据分到几个有序的桶里,每个桶里的数据再单独进行排序。//整个序列分隔为两个部分,low位置左边的都是比区轴元素小的,low位置右边的都是比区轴元素大的。

2023-09-03 12:30:00 67

原创 数据结构(四)

方法:从图的某一顶点V0出发,访问此顶点后,依次访问V0的各个未曾访问过的邻接点;从图中的某个顶点开始,选择一条最短的边,将对应的顶点添加到顶点集合中,再从顶点集合中所有的顶点相关联的边中找出一条最短的边(边的另外一个顶点不在顶点集合中),然后将该顶点加到顶点集合中,直到所有的顶点都在顶点集合中为止。E(G)是有向边(也称弧)的有限集合,弧是顶点的有序对,记为<v,w>,v,w是顶点,v为弧尾,w为弧头。E(G)是边的有限集合,边是顶点的无序对,记为(v,w)或(w,v),并且(v,w)=(w,v)

2023-09-02 12:30:00 76

原创 数据结构(三)

当右标识为1的时候,该节点的右孩子指针指向某种访问序列的后继节点。i++) //填充n-1个非叶子节点(需要调整n个叶子节点的parent,要更新n-1个非叶子节点的所有数据域)//从字符数组的末尾开始:在计算叶子节点的编码的时候是从叶子节点一步一步找父节点,一直到根节点为止。= 0) //如果当前节点的父节点序号为0表示当前节点是根节点,则该叶子节点的编码结束。高度(high)——树的高度在数值上等于树的深度,但是深度的概念是从根节点到叶子节点,而高度的概念是从叶子节点到根节点;

2023-09-01 12:30:00 78

原创 数据结构(二)

性质1:在二叉树的第i层上至多有2^(i-1)个节点性质2:深度为k的二叉树至多有2^k-1个结点(k>=1)性质3:对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1特殊的二叉树a. 满二叉树: k层的二叉树具有2^k - 1个节点b. 完全二叉树: 深度为k,有n个结点的二叉树当且仅当其每一个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时性质4:具有n个节点的完全二叉树的深度为logn + 1。

2023-08-31 12:45:00 77

原创 c++ 友元

cout << "学号: " << st.s_no << ", 姓名: " << st.s_name << ", 成绩: " << st.s_sc << endl;cout << "学号: " << st.s_no << ", 姓名: " << st.s_name << ", 成绩: " << st.s_sc << endl;在类的定义中,通过对类的成员添加访问限定可以控制在类的外面访问类的成员;//通过在类中指定另外一个类的成员方法为该类的友元函数,在另外一个类的成员函数中就可以访问类的私有成员。

2023-08-30 22:15:00 24

原创 数据结构(一)

/查找插入位置for(i = 0;i < n;break;pos = n;//移动i >= pos;i--)链式表: 使用链表表示特点:用一组任意的存储单元存储线性表的数据元素(逻辑上相邻的元素在物理上可以不相邻)利用指针实现了用不相邻的存储单元存放逻辑上相邻的元素(只支持顺序访问)每个数据元素ai,除存储本身信息外,还需存储其直接后继的信息(需要额外的存储空间)

2023-08-30 12:30:00 65

原创 c++ 继承

派生类对象在构建的时候会先调用基类的构造方法(默认的会调用基类的无参构造)来构造派生类中从基类继承的部分(派生类中包含的基类对象),然后再调用自己的构造方法构造自己独有的部分。该指针被称为虚基类指针。覆盖: 派生类对基类的成员方法进行重写的时候,在派生类中派生类重写的版本会覆盖基类中实现的版本(通过派生类对象是不能直接访问被覆盖的成员方法)隐藏: 派生类对基类的成员方法进行重载的时候,在派生类中派生类重载的版本会隐藏基类中实现的版本(通过派生类对象是不能直接访问被覆盖的成员方法)

2023-08-29 12:45:00 37

原创 c++ IO流

cout << endl << "学号: " << temp.s_no << ", 姓名: " << temp.s_name << ", 成绩: " << temp.s_sc << endl;cout << "学号: " << temp.s_no << ", 姓名: " << temp.s_name << ", 成绩: " << temp.s_sc << endl;PS E:\LinuxShared\vscode\cpp_source\CPP_202308\CPP_09 IO流> ./test。

2023-08-28 12:30:00 42 1

原创 多态: 虚函数

f. 类中的虚函数仅对派生类中重新实现的函数起作用,对其他函数没有影响(虚函数的机制是通过在对象的起始位置增加一个虚表指针,该指针指向虚函数表,在虚函数表中存储的是当前类型所有虚函数的入口地址) -- 虚函数是动态绑定的,而普通函数是静态绑定的。d. 异常会向上进行传递(在函数中发生的异常如果在函数内部没有处理这该异常会传递到函数调用的位置), 如果到程序的最外层的catch中有不能匹配的异常(程序中发生的异常不能被捕获),系统会自动的调用terminate来终止程序的执行。

2023-08-27 12:15:00 22

原创 重载运算符(二)

派生类继承基类的时候同样的会继承基类的虚表指针,这个指针指向派生类对象的虚函数表,在派生类的虚函数表中存储的是派生类对象的虚函数的入口地址(如果在派生类中没有重新实现那么虚函数表中的入口地址就是从基类继承的虚函数的入口地址;派生类中不是从基类继承的虚函数在虚函数表中的位置是所有继承的虚函数的后面。从程序运行结果可以看出,基类指针指向派生类对象的时候得到的是派生类对象中的那个基类对象,通过这个指针调用的方法是基类对象中的方法(从基类继承的版本),不能调用指针所指向的那个实际对象自己实现的方法。

2023-08-26 18:50:16 38

原创 运算符重载(一)

在实现过程中,首先把指定的运算表达式转化为对运算符函数的调用,运算对象转化为运算符函数的实参,然后根据实参的类型来确定需要调用的函数,这个过程是在编译过程中完成的。对于C++的运算符作用在用户自定义类型上确定其运算规则: 在自定义类型,定义对于该类型对象参与具体的运算的时候的运算操作模式,使得该类的对象不必要通过成员方法而直接使用运算符就可以按照设定的操作模式来进行运算。注意: 前缀运算符参加运算的是当前对象自己,而后缀运算符参加运算的是值等于当前变量的一个临时对象(以对象的值参加运算的)

2023-08-26 18:48:55 34

原创 编写一个线程池

==================================互斥锁 lock =============================================================条件变量 cond==============================================================线程 ==================================threads_num: 初始化 要干活的线程数,这些线程都是做同样的工作。

2023-08-26 12:30:00 25

原创 systemV IPC

int msgflg: IPC_CREAT|0644(创建), IPC_EXCL(如果已经存 在就返回错误)int shmflg: IPC_CREAT|0644(创建), IPC_EXCL(如果已经存 在就返回错误)1. 先向 内核申请 一个 IPC key (钥匙 ,许可证): ftok。信号量: semop。返回值: 成功 返回指向消息队列的 msgid 描述符(int)返回值: 成功 返回指向消息队列的 shmid 描述符(int)练习: 通过 A, B 聊天 (通过共享内存,或者 消息队列)

2023-08-25 12:30:00 26

原创 进程间通信

司机捕捉SIGTSTP(代表车到总站, ctrl + z), 发送 SIGUSR1给售票 员,售票员打印("please get off the bus")(1). 捕捉信号: 把一个信号 与 用户自定义的 处理函数 关联起来 signal(如果收到该信号,就执行那个函数)有人利用系统的 API , 但文件的内容不在磁盘上(在内存中)在内存中搞一个文件。SIGALRM: 闹钟信号, alarm()函数会参数这个信号,程序收到会终止。大部分的信号的默认行为,进程如果收到 信号的默认行大部分都是终止。

2023-08-24 21:23:51 39 1

原创 QT 的移植

当我们 执行 tslib/bin/ts_calibrate 矫正触摸屏之后, 就会在 etc目录生成一个 /etc/pointercal, 就是每次触摸屏启动的时候,会去调用的一个脚本。2.修改配置文件: vi qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf。进入源码目录 cd /home/csgec/qt-everywhere-opensource-src-5.9.1。在执行 sudo ./myln.sh 创建软连接:快捷方式 arm-linux-

2023-08-23 21:28:24 49

原创 开发板混杂设备驱动模块安装

gpio: 要申请操作的 gpio的编号, 所有的 GPIO从0开始,对应的 GPIO引脚都有一个Number: s5p6818。在头文件(arm/arm/plat-s5p6818/common/cfg_type.h )中。加载模块后可以在 /dev 下看到 my_led 已加载。返回: 成功 返回0, 失败:其他值。label: 给要申请的 gpio 一个名字。在内核中定义了一个 misc。在Ubuntu下编译成模块。1. 向内核申请 gpio。连接板子后下载模块。

2023-08-23 21:06:21 28

原创 x6818开发板

sudo tar jxvf arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C /usr/local/arm 交叉编译工具的路径:/usr/local/arm/arm-2014.05/bin。得到这个文件:/home/china/x6818_linux_180209/linux/bootloader/u-boot-2014.07/tools/mkimage。华为设计芯片的公司:麒麟 990 ,麒麟1000 (找台积电生产)

2023-08-21 21:13:32 473 2

原创 sqlite3 C 接口

SQLite是一个自包含的(self-contained ),服务开销小、 (serverless),零配置(zero-configration),支持事务 (transactional)的数据库引擎,是一个源代码公开软件库。一般用在 嵌入式系统数据库 安装在嵌入式设备上面。

2023-08-20 12:15:00 59 1

原创 MySQL C语言接口

-----> 该函 数保存结果,返回指向结果的指针。MYSQL_ROW mysql_fetch_row(MYSQL_RES *res) ---->从res指 向的结果中获取一行数据。返回值,包含错误信 息的字符串,---> 返回 列 数。my_ulonglong mysql_num_rows(MYSQL_RES *res)---->返回行 数。const char *db, ------> 要连接的数据库的名字: "mydb"MYSQL *mysql, ----> 上一个函数的返回值: conn。

2023-08-19 12:21:52 97

原创 数据库mysql入门

随便记录一下。

2023-08-18 22:23:31 25 1

原创 科大讯飞语音识别库使用

在你下载的科大讯飞目录 x86 下的 bin 目录里的 cmd.bnf 文件,这个文件里面放的是语音识别的内容所对应 id 号(内容如下)。录音时,会在n86文件夹中生成一个 cmd.pcm 文件(播放对应的语音会用到),这个文件存放了你刚刚的录音。在 n86 客户端目录下的 voicectl.c 文件,这个文件可以将语音识别服务器返回的 id 号播放对应的语音。本来想把需要的文件发出来的(是问朋友要的),因为要发的是文件夹,但是我好像是只知道怎么发文件。在对应的地方添加新的指令,播放对应的mp3。

2023-08-17 17:37:27 620 1

原创 科大讯飞离线语言识别库下载安装

今天记录一下语言识别。

2023-08-17 13:16:53 1634 3

原创 Ubuntu里C语言的OpenCV安装和简单使用示例

Ubuntu的opencv初次安装使用

2023-08-16 20:31:42 366

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除