- 博客(47)
- 资源 (9)
- 收藏
- 关注
原创 最优化建模、算法与理论(四)—— 最优性理论
1 最优化问题解的存在性1.1 Weierstrass 定理1.2 强拟凸函数1.3 唯一性定理2 无约束可微问题的最优性理论2.1 一阶最优性条件2.2 二阶最优性条件3 无约束不可微问题的最优性理论3.1 凸优化问题一阶充要条件3.2 复合优化问题的一阶必要条件4 对偶理论4.1 拉格朗日函数与对偶问题
2022-10-09 14:26:01 1711 1
原创 最优化建模、算法与理论(三)—— 优化建模
1 建模设计1.1 目标函数的设计1.2 约束设计2 建模技巧2.1 监督学习2.1.1 回归2.1.2 分类2.2 概率图模型2.3 相位恢复2.4 主成分分析2.5 矩阵分离问题2.6 字典学习2.7 K-均值聚类2.8 图像处理中的全变差(TV)模型2.9 小波模型2.10 强化学习...
2022-08-26 10:25:02 1173
原创 深入理解计算机系统(九) ——系统级I/O / Unix下的文件操作
1 打开和关闭文件 2 读和写文件 3 读取文件信息(元数据) 4 共享文件 5 标准I/O
2022-07-18 18:05:33 285
原创 最优化建模、算法与理论(二)—— 典型优化问题
1 线性规划 2 最小二乘问题 3 复合优化问题 4 随机优化问题 5 半定规划 6 矩阵优化 7 整数优化 附录 常用软件包、库或软件
2022-06-25 17:28:03 1361
原创 深入理解计算机系统(八) ——虚拟存储器
虚拟存储器1 基本概念1.1 寻址1.2 地址空间1.3 虚拟存储器1.4 页与页表1.5 缓存2 虚拟存储器的作用3 地址翻译4 存储器映射 / 共享内存6 动态存储器分配 / 堆
2022-06-15 16:08:51 906
原创 深入理解计算机系统(七) —— 测量程序执行时间
参考书籍《深入理解计算机系统》1.通过间隔计数来测量时间2.周期计数器(高精度测量)3.基于gettimeofday函数的测量(一般测量看这个)
2022-06-08 11:06:23 218
原创 深入理解计算机系统(六) —— 异常控制流
参考书籍《深入理解计算机系统》文章目录1 异常1.1 基本概念1 异常:异常处理、异常类别、创建子进程、回收子进程2 进程:调度、上下文切换、3 信号:发送信号、接收信号、信号处理
2022-05-20 12:24:49 489
原创 深入理解计算机系统(五) —— 链接
参考书籍《深入理解计算机系统》程序的编译过程见文章目录1 基础概念21 基础概念链接:将不同部分的代码和数据收集和组合成为一个单一文件的过程,链接可以执行于编译时(即将源代码翻译成机器代码时)、加载时(即程序被加载器加载到存器器并执行时)和运行时(由应用程序来加载),现代系统中链接是由链接器自动执行;链接器:它是一个程序,在软件开发中因为链接器的存在使得分离编译成为了可能,理解链接器有如下好处:1.理解链接器如何解析引用有助于解决由于缺少模块、缺少库或者不兼容的库版本引起链接错误,有利于帮助程
2022-05-13 11:52:42 669
原创 深入理解计算机系统(四) ——优化程序性能 / 程序编译过程
参考书籍《深入理解计算机系统》文章目录1 高效程序的基础2 优化编译器的能力和局限性3 程序优化的方法4 程序性能剖析工具1 高效程序的基础数据结构和算法:比如hash_map的查找效率会高于map;1加到100用公式(1 + 100)* 50的效率高于循环累加源代码能够被编译器有效优化成高效可执行代码:对于这一点需要理解优化编译器的能力与局限性,C的一些特性——比如执行指针运算和强制类型转换等——使得优化很困难2 优化编译器的能力和局限性编译优化:编译优化会更改代码的,在优化中,有不同
2022-04-21 19:24:04 1028
原创 深入理解计算机系统(三) —— 程序的机器级表示
参考书籍《深入理解计算机系统》文章目录1 基本概念2 数据格式3 指令4 寄存器的使用惯例5 存储器的越界引用和缓冲区溢出6 浮点代码和浮点寄存器附录 — linux下,利用gcc生成汇编代码1 基本概念可执行代码文件:即我们常说的程序,为二进制格式,无法直接阅读汇编代码文件:常见后缀为.s,非常接近于计算机执行的实际机器代码,是可阅读的文本格式机器指令:是CPU能直接识别并执行的指令,只执行非常基本的操作,比如将两个存放在寄存器种的数字相加、在存储寄存器之间传递数据等CPU包含以下寄存器:
2022-03-17 19:17:40 683
原创 深入理解计算机系统(二) —— 信息表示与处理
参考书籍《深入理解计算机系统》文章目录1 信息存储基本概念1 信息存储基本概念存储单位:大多数计算机使用8位(bit)的块 [ 称之位字节(byte)] 作为最小的可寻址存储器单位;地址:机器级程序(常说的用户进程)讲存储器视为非常大的字节数组(称为虚拟存储器),存储器的每个字节都由一个唯一的数字来标识,称之为地址,所有可能地址的集合就是虚拟地址空间;...
2022-03-11 19:11:16 835 1
原创 深入理解计算机系统(一) —— 计算机系统的硬件组成
总线:贯穿系统的电子管道,作用是携带信息字节并负责在各个部件传递。通常总线被设计成传送定长的字节块。不同系统字节数(字长)不尽相同。I/O设备:系统与外界的联系通道,如图中的键盘、鼠标、显示器和磁盘都是I/O设备,每个I/O设备都通过一个控制器或适配器与I/O总线连接。主存(主存储器):是一个临时存储设备,在处理器执行程序时被用来存放程序和数据。物理上主存由一组DRAM(动态随机存取存储器)芯片组成;逻辑上主存是一个线性的字节数组,每个字节都有唯一地址,这些地址从零开始。处理器(CPU):解释(或..
2022-02-16 18:29:11 523
原创 ubuntu18.04源码编译安装ros2
本教程为源码编译安装方式,发现了一个中文教程,结合实际改动优化一下文章目录1 下载源码过慢或失败2 rosdep安装依赖项3 colcon命令找不到1 下载源码过慢或失败说明:前面没啥问题,到创建工作空间并进行下载源码下图这两步,改一下修改步骤1.先去官网ROS2界面,下载ros2.repos2.执行gedit ros2.repos,打开文件,把里面的https://github.com替换成https://github.com.cnpmjs.org3.执行vcs import src &
2021-11-23 16:29:04 1638 1
原创 ROS基本操作(一):发布与订阅
ROS官网教程文章目录1 创建ROS工作空间2 创建ROS软件包3 一个发布/订阅示例4 构建节点5 运行示例1 创建ROS工作空间创建ROS工作空间:$ mkdir -p ~/your_dir/src$ cd ~/your_dir/$ catkin_make创建成功:$ /work/ros$ ls -a. .. build .catkin_workspace devel src将当前工作空间设置在环境的最顶层:echo "source /home/you/you
2021-09-23 15:13:38 4122
原创 ubuntu18.04安装ros
ROS Melodic 官网安装指南总入口本教程为apt-get命令安装方式,包括详细的安装步骤、错误的解决方式和正确安装序的现象文章目录1 安装1.1 设置程序安装源并更新 Debian 包索引1.2 设置密钥1.3 安装2 初始化rosdep2.1 安装rosdep2.2 初始化2.3 更新3 设置环境(可选但是推荐)4 构建工厂依赖(可选但是推荐)5 检查是否安装成功1 安装1.1 设置程序安装源并更新 Debian 包索引命令:sudo sh -c '. /etc/lsb-rel
2021-09-16 15:19:24 1194
原创 linux 查看运行进程的可执行文件所在目录
1 获取PID方法1:执行top命令,然后找到对应的进程方法2:执行ps -ef | grep 程序名2 进入proc目录下对应的进程路径cd /proc/3[sudo] ls -l//查看系统或者其他用户开启的进程需要sudo权限exe连接的即可执行文件的目录。...
2021-09-14 11:43:20 3090
原创 linux下:Shell学习指南
1 变量1.1 变量命名规则只能用英文字母、数字和下划线,首个字母不能以数字开头;不能使用bash里的关键字(help命令可查)。1.2 变量的定义与赋值使用” = “赋值:变量名与等号之间不能有空格;_var=123CurrentPath=`pwd`通过语句给变量赋值。for file in `ls /etc` do echo $filedone1.3 变量的使用使用一个定义过的变量,只需要在变量名前加 $ 。echo $_var_var2=$_var
2021-09-10 13:53:36 247
原创 Qt — xml读写及常用操作示例
1 QXML类概述类描述QDomAttr表示 QDomElement 的一个属性QDomCDATASection表示一个 XML CDATA 片段QDomCharacterData表示 DOM 中的通用字符串QDomComment表示 XML 注释QDomDocument表示一个 XML 文档QDomDocumentFragment一组 QDomNodes,通常不是完整的 QDomDocumentQDomDocumentTypeDTD 在文档树中的表示QDomElement代表 DOM
2021-09-10 09:10:07 7734
原创 c++使用Mysql的详解及常用操作示例
ubuntu14.04命令安装mysqlMYSQL 基础知识之API解析运行环境:ubuntu14.04c++版本: c++11编译器:QTQMake version 3.0Using Qt version 5.2.1 in /usr/lib/x86_64-linux-gnuMysql版本:mysql Ver 14.14 Distrib 5.5.62, for debian-linux-gnu (x86_64) using readline 6.31 pro文件TEMPLATE = ap
2021-09-06 19:45:24 630
转载 MYSQL 基础知识之API解析
1 数据类型MYSQL该结构代表1个数据库连接的句柄。几乎所有的MySQL函数均使用它。不应尝试拷贝MYSQL结构。不保证这类拷贝结果会有用。MYSQL_RES该结构代表返回行的查询结果(SELECT, SHOW, DESCRIBE, EXPLAIN)。MYSQL_ROW原型:typedef char **MYSQL_ROW;相关API:MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result);一个字符串数组,所有得数据类型都被转换成字符串送
2021-09-02 20:50:05 414
原创 Linux之ubuntu下启动mysql的详细步骤及常见错误整理
mysqld_safe启动失败1 Can’t start server : Bind on unix socket: Permission denied终端提示:user@ubuntu:~$ mysqld_safe 210902 01:25:19 mysqld_safe Can't log to error log and syslog at the same time. Remove all --log-error configuration options for --syslog to ta
2021-09-02 17:58:43 2323
原创 ubuntu14.04命令安装mysql
sudo apt-get install mysql-serversudo apt-get install libmysqlclient-dev
2021-07-17 14:02:01 123
原创 C++优化建议
1.指针与引用在以下情况只能使用指针:存在不指向任何对象的可能(即空指针)可能改变指向的对象在以下情况推荐使用引用:重载某个操作符时,返回引用必须指向一个对象且不再改变指向2.类型转换使用C++风格的类型转换,如下:static_cast:静态类型转换,常用于基本类型转换const_cast:去除变量的const属性dynamic_cast:动态类型转换,安全的基类和子类之间转换;运行时类型检查reinterpret_cast:强制类型转换,重新解释操作数的位模式,很难保证
2021-05-25 16:20:37 105
原创 RTTI —— 运行阶段类型识别
RTTI —— 运行阶段类型识别1.多态定义:允许将子类类型的指针赋值给父类类型的指针。多态性在Object Pascal和C++中都是通过虚函数(Virtual Function) 实现的。说明:无多态性示例class Base{public: Base(){} void FunOne(){std::cout << "This is Base" << std::endl;}};class SubOne : public Base
2021-04-08 13:48:12 153
原创 运算符重载
格式//ret:返回的类型//op:运算符 + * / [] ……//argument-list:参数列表ret operator op(argument-list);限制至少有一个参数是用户定义的类型,不能为标准类型重载运算符不能违反运算符原来的语句法则,也不能修改运算符的优先级不能创建新的运算符以下运算符不能被重载:sizeof . .*(成员指针) :: ?:(条件运算符) typeid const_cast dynamic_cast reinterpret_c
2021-01-25 19:51:54 119 2
原创 windows编译安装protobuf
protobuf-3.5.1源码点这里下载安装cmake下载cmake,官网地址:https://cmake.org/download/, 推荐Binarydistributions的对于版本.msi。双击安装到对应路径,将 bin 的路径添加到环境变量。在 cmd 中输入:cmake --version,如显示版本信息,则安装成功。...
2021-01-05 14:07:05 240
原创 window命令行编译QT程序
我的环境是qt5.9.8 + vs20151.配置环境变量将qmake.exe和jom.exe的路径配置到环境变量中。设置windows环境变量详细步骤2.设置QT环境变量amd64:64位编译64位x86:32位编译32位amd64_x86:64位编译32位x86_amd64:32位编译64位CALL “C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.b
2021-01-04 15:45:39 642
原创 window设置环境变量
以添加qmake路径为例1. 打开i我的电脑->属性2. 选择高级系统设置3. 选择环境变量4. 选择Path->选择编辑5. 添加qmake路径->点击确定
2021-01-04 15:24:34 340
转载 SQL——基础语法
1.基本数据类型->SQL基本数据类型2.创建表creat table tablename (column_name column_type);实例:CREATE TABLE IF NOT EXISTS `runoob_tbl`( `runoob_id` INT UNSIGNED AUTO_INCREMENT, `runoob_title` VARCHAR(100) NOT NULL, `runoob_author` VARCHAR(40) NOT NULL, `s
2020-12-30 10:41:19 171
转载 MySQL指令——基础操作
1.登录mysql -h 主机名 -u 用户名 -p-h : 指定客户端所要登录的 MySQL 主机名, 登录本机(localhost 或 127.0.0.1)该参数可以省略;-u : 登录的用户名;-p : 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项。2.增删数据库均以RUNOOB为例:创建数据库creat database RUNOOB;删除数据库drop database RUNOOB;3.显示数据库show databases;/
2020-12-30 10:08:50 236
原创 tinyxml2使用
1.从文件加载XMLDocument doc;int iRet = doc.LoadFile("./test.xml");2.XMLDocument转字符串XMLDocument doc;int iRet = doc.LoadFile("./test.xml"); XMLPrinter printer; doc.Print(&printer); std::string strXml = printer.CStr();3.字符串转XMLDocumentstd::string s
2020-12-23 10:14:59 115
转载 ubuntu14.04升级gcc到4.9
重要的事情说在前面:本文所提到的方法应用的系统范围是ubuntu 14.04.05LTS 版本,由于此系统官方版本为gcc4.8.4.但是很多编译环境是要求gcc4.9版本以上,此时如果是直接利用软件源更新,是无法做到,只能通过到官网下载源码编译,笔者亲测,那是一个漫长而煎熬的过程,还会出现依赖缺失等一系列错误的过程。所以在这里推荐一种简单省事的方法。直接通过添加软件源,然后更新gcc的方法。具体方法如下:1. 添加软件源sudo add-apt-repository ppa:ubuntu-toolc
2020-12-11 09:43:03 421
原创 Linux获取本地时间
1.时间的表示方法参考链接Linux内核中表示时间的结构体和数据类型有5种, 具体其声明的头文件在:#include<sys/time.h> #include<sys/types.h>extern void do_gettimeofday(struct timeval *tv);//gettimeofday函数执行成功后返回0,失败后返回-1,错误代码存于errno中。extern int gettimeofday(struct timeval *__restrict _
2020-12-04 11:14:06 917
转载 宽字符与多字节字符相互转换
环境:c++11#include <locale>#include <codecvt>std::wstring szW{ L"Hello world." };std::string szA;std::wstring_convert<std::codecvt_utf8<wchar_t>> cv; // 声明一个用于转换的变量cv。所有的转换都经过此变量。szA = cv.to_bytes(szW);// 宽字节转多字节std::wstring sz
2020-11-05 11:14:02 252
原创 ubuntu18.04编译安装rcslib
rcslib-2012.12.05源码点这里下载1.安装automake工具sudo apt-get install autoconf automake libtool2.编译安装./autogen.sh./configuremakemake check//很慢,可以跳过这一步sudo make installsudo ldconfig3.查看版本protoc --version...
2020-09-21 11:23:00 712
原创 GStreamer播放本地wav格式音频文件代码实现
1.安装GStreamer && 测试环境GStreamer官方教程如下图为各个平台的安装教程,按照教程装就好了装完测试一下电脑环境:gst-launch-1.0 filesrc location=/home/username/work/TestProgram/TestGstream/tts_sample.wav ! wavparse ! alsasink命令规则参考点这里能正常听到声音就继续往下看呀~没有声音的话就先解决这个问题吧。2.简单粗暴上代码QT在.pro文件配置
2020-07-04 17:18:50 1350
rcslib-2012.12.05.tar.gz
2020-09-21
java开发工具包jdk
2020-09-21
libzmq-4.3.2.tar.gz
2020-07-03
boost_1_55_0.tar.gz
2020-07-01
protobuf3.5.1.tar.gz
2020-07-01
opencv-3.3.1.tar.gz
2020-07-01
jsoncpp.tar.bz2
2020-07-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人