自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构整理双向链表

双向链表- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -和单向链表相比有以下优势:插入删除不需要移动元素外,可以原地插入删除可以双向遍历- - - - -...

2018-04-17 20:48:56 258

转载 初探语音识别技术

语音识别      语音识别根据实际需求的不同也会有所不同。目前主要追求大词汇量、连续、非特定人。       语音识别主流开源框架:HTK、Kaldi、CMUSphinx。因为目前只接触了Sphinx,对于另外两个框架没有太深入研究。        1)Kaldi适用于在服务器搭建的语音识别系统,也可以适用于android,但没有实验过,根据官方提供方法:http://jcsilva.githu...

2018-04-17 19:44:43 12020 2

转载 Linux进程相关整理

1. 进程是什么         进程(process)的概念最早是由美国麻省理工学院的 J.H.Sallexer 于1966年提出的,是现代操作系统最基本、最重要的概念。进程的引入很好的描述了程序的执行过程和并发行为。  定义: 进程是并发程序的一次执行过程,进程是具有一定独立功能的程序关于某个数据集合的一次运行过程。      进程的本质:           1.进程的存在必然需要程序的存在...

2018-04-17 18:54:05 417

转载 Linux 中的五种 IO 模型

1 概念说明在进行解释之前,首先要说明几个概念:用户空间和内核空间进程切换进程的阻塞文件描述符缓存 IO1.1 用户空间与内核空间现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核(kernel),保证内核...

2018-04-13 21:34:19 971

转载 三层架构

三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的目的即为了“高内聚低耦合”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从...

2018-04-13 21:17:09 388

原创 C++学习笔记(三十四)知识整理1

1.整数转化字符串,不用itoa   using namespace std;//字符串整数转化int main(){ int num = 12345; char str[7], s[7]; int i = 0, j = 0; while (num) { s[i] = num % 10 + '0'; i++; num = num / 10; } s[i] = 0; cout <<...

2018-04-11 20:02:55 270

原创 C++学习笔记(三十三)构造函数、析构函数与虚函数的使用

构造函数不能声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数。不建议在构造函数和析构函数里面调用虚函数。构造函数不能声明为虚函数的原因是:1 构造一个对象的时候,必须知道对象的实际类型,而虚函数行为是在运行期间确定实际类型的。而在构造一个对象时,由于对象还未构造成功。编译器无法知道对象 的实际类型,是该类本身,还是该类的一个派生类,或是更深层次的派生类。无法确定。。。2 虚函数的...

2018-04-11 18:12:42 262

原创 C++学习笔记(三十二)回头再看虚函数原理

C/C++杂记:虚函数的实现的基本原理1. 概述简单地说,每一个含有虚函数(无论是其本身的,还是继承而来的)的类都至少有一个与之对应的虚函数表,其中存放着该类所有的虚函数对应的函数指针。例:其中:B的虚函数表中存放着B::foo和B::bar两个函数指针。D的虚函数表中存放的既有继承自B的虚函数B::foo,又有重写(override)了基类虚函数B::bar的D::bar,还有新增的虚函数D::...

2018-04-07 20:46:44 246

转载 二叉树的遍历

二叉树及二叉树遍历完全二叉树二叉树的遍历遍历的性质1、完全二叉树对于一棵具有n个节点的二叉树(按层序编号),如果编号为i的节点与同样深度的满二叉树中编号为i的节点在二叉树的位置完全相同,则为完全二叉树。换句话来说,如果每个节点按照满二叉树的结构逐层顺序进行编号,如果编号出现编号空挡,就说明不是完全二叉树,否则就是。如下图所示:左边二叉树按照完全二叉树进行编号,出现了10号的空挡,右边二叉树出现了6...

2018-04-07 20:46:08 232

原创 C++学习笔记(三十一)拷贝构造函数与赋值运算符重载的区别

拷贝构造函数发生在对象还没有创建;赋值操作符重载仅发生在对象已经创建的情况下。一个对象的诞生首先必须经历构造过程,这也是构造函数存在的意义,而=运算符本身并不具有代替构造函数的作用,在题目中由于obj1、obj2、obj3都是首次出现的对象,因此必须经历构造函数,因此,即使obj3使用了=运算符,但是仍然必须要执行构造函数,此时的=也会被理解成调用了拷贝构造函数。通常拷贝构造函数应用的场合有以下几...

2018-04-07 16:46:10 314

原创 Stm32学习笔记(四)通用定时器基本原理

2018-04-06 17:03:45 594

原创 Stm32学习笔记(三)串口通信基本原理

串行通信方式STM32的串口通信接口UART:通用异步收发器USART:通用同步异步收发器大容量STM32F10x系列芯片,包含3个USART和2个UARTUART异步通信方式引脚连接方法:UART异步通信方式特点:全双工异步通信。分数波特率发生器系统,提供精确的波特率。     --发送和接受共用的可编程波特率,最高可达4.5Mbits/s可编程的数据字长度(8位或者9位);可配置的停止位(支持...

2018-04-06 16:25:21 1264

转载 NetWork【计算机网络相关】

[Network] 计算机网络基础知识总结阅读目录1. 网络层次划分2. OSI七层网络模型3. IP地址4. 子网掩码及网络划分5. ARP/RARP协议6. 路由选择协议7. TCP/IP协议8. UDP协议 9. DNS协议10. NAT协议11. DHCP协议12. HTTP协议13. 一个举例  计算机网络学习的核心内容就是网络协议的学习。网络协议是为计算机网络中进行数据交换而建立的规则...

2018-04-06 16:13:47 364

原创 QT学习笔记(十)数据库基础

SQL执行操作QSqlQuery提供了对数据库记录的Select、Insert、Update、Delete操作。SELECT操作: QSqlQuery query;query.exec("SELECT name, salary FROM employee WHERE salary > 50000");while (query.next()) {    QString name = query...

2018-04-03 20:33:35 398 1

原创 QT学习笔记(九)服务器与线程

头文件#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QTcpServer> // tcp 服务器类,=====> 负责监听是否有客户端连接#include <QTcpSocket> // tcp socket ======> 负责tcp的通信namespace U...

2018-04-03 15:47:31 411

原创 QT学习笔记(八)画图

头文件#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QVector>#include <QPoint>#include <QPaintEvent>#include <QMouseEvent>#include <QKeyEvent>namespace Ui...

2018-04-03 14:50:30 425

原创 QT学习笔记(七)QDataStream传递自定义的数据类型

QT自带的QDataStream只能传递它自己要求的数据类型。但是我们可以自己重载QDataStream& operator<<()和QDataStream& operator>>();mydatastream.h[cpp] view plain copy#ifndef MYDATASTREAM_H  #define MYDATASTREAM_H    #i...

2018-04-03 11:27:32 2844

原创 QT学习笔记(六)各种控件

槽函数private slots: void on_comboBox_currentIndexChanged(const QString &arg1);private: Ui::Widget *ui; QTimer timer;Widget.cpp#include "widget.h"#include "ui_widget.h"Widget::Widget(QWidge...

2018-04-02 21:46:28 701

原创 QT学习笔记(五)登录注册、打开保存文件

// 模态对话框void Widget::on_pushButton_2_clicked(){ Login dlg; // 会接管 app 的 exec,处理消息事件 int ret = dlg.exec(); if (ret == QDialog::Accepted) // 调用accept函数结束窗口返回 Accepted qDebug() &...

2018-04-02 19:47:30 712

原创 QT学习笔记(四)模态和非模态对话框

Qt中QDialog类是所有对话框的基类,对话框窗口是一个经常用来完成一个短小任务和用户进行简单交互的顶层窗口。对话框被分为两类模态的和非模态的。  模态对话框就是没有关闭它之前,不能再与同一个应用程序的其他窗口进行交互,比如新建项目是弹出的对话框。而对于非模态对话框,既可以和它进行交互,也可以与同一程序中的其他窗口交互。[cpp] view plain copy#ifndef MYWIDGET_...

2018-04-02 19:07:20 341

空空如也

空空如也

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

TA关注的人

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