自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 cmake CMakeLists链接第三方动态库

nm命令可以查看二进制程序或者动态库的符号表,gcc和g++编译出来的符号是不一样的,gcc编译出来的符号,就是函数名,g++编译出来的符号会在函数名前后进行一些字符拼接。就是因为编译动态库使用了g++,编写main程序用了gcc,导致main程序找不到动态库中的符号。要把内核的一部分逻辑抽象成动态库,尝试写demo加载的时候一直链接不上,写此帖记录!其他程序如果想链接这个动态库,可以用下面的CMakeLists.txt逻辑。上面最后一行函数yzy就是gcc编译出来的,可以看到符号名和函数名是一样的。

2023-05-24 10:55:42 2878

原创 新安装的centos命令提示符显示当前路径

新安装的centos虚拟机显示路径为无法看到当前路径并且在网上查找的资料也有些错误写此帖记录下。

2023-05-17 15:21:58 271

原创 vim最新版本安装 安装vim9

linux 安装最新版vim

2022-09-08 16:39:01 2345 2

原创 vim 配置C/C++单文件无参数编译运行

vim单文件编译运行写法原理,小小重构记录一下。

2022-09-05 19:49:20 370

原创 linux ln创建目录软连接

linux ln -s 创建目录软连接

2022-09-02 15:25:23 6042

原创 C++ 浅谈POD类型

C++ 浅谈POD类型

2022-08-25 17:12:54 426

原创 C++ using的使用

C++ using的使用

2022-08-23 20:37:48 550

原创 C++11 优雅的类非静态成员初始化

优雅的初始化C++的类的非静态成员

2022-08-08 23:17:41 360

原创 C++ inlilne namespace 内联命名空间的定义和使用

C++11~C++20 内联命名空间

2022-07-28 23:02:19 313

原创 C++单例模式类

C++ 单例模式 创建单例的类

2022-07-26 22:14:36 84

原创 vim 设置C/C++代码跳转

vim通过ctags配置代码跳转

2022-07-24 21:36:00 1300

原创 vim配置文件加载顺序

vim配置文件加载

2022-07-10 01:54:16 489

原创 cmake + gtest安装使用 C++单元测试 gcov locv代码覆盖率

cmake + gtest安装使用 C++单元测试 gcov locv代码覆盖率

2022-06-24 20:53:05 1827 5

原创 Linux inotify功能 使用 详解示例

linux inotify的介绍, 详解, 以及代码示例

2022-06-04 15:56:10 858

原创 【linux shell】linux三剑客&正则 速查

linux三剑客&正则 速查写在前面, 根据日常使用会持续更新正则表达式基础正则$ 以什么结尾 grep root$ file 查找以root结尾的^ 以什么开头 grep ^root file 查找以root开头的. 匹配任何一个字符* 匹配前面一个字符或者表达式0次或者任意次 grep y*root file 查找root前有0个或者任意个y [] 匹配括号中的任意一个字符, 注意是一个 grep ro[bdo]t file 查找

2022-05-28 16:08:51 121

原创 linux POSIX消息队列详解&使用&demo

linux POSIX消息队列详解&使用&demo系统调用mq_open()打开一个消息队列,#include <fcntl.h> /* For O_* constants */#include <sys/stat.h> /* For mode constants */#include <mqueue.h>mqd_t mq_open(const char *name, int oflag);mqd_t m

2022-05-21 18:44:44 830

原创 linux共享内存共享消息队列

linux共享内存共享消息队列初衷​ 又想使用共享内存的高效,又想使用队列来让两个进程进行异步通信。用到的系统调用1. ftok​ 每个共享内存都要有一个对应的key相关联#include <sys/ipc.h>key_t ftok(const char *path, int id);//path为要共享的路径//id为0-255之间的整数,自己取//成功返回key,失败返回-12. shmget创建共享段并返回一个共享段的标识符#include <sys/i

2022-05-18 21:42:12 432

原创 SDK开发技巧&注意事项

SDK开发技巧&注意事项SDK结构两种SDK形式1. header-only+- /include| +- a.h| +- b.h| +- c.h| +- ...2.header-files+lib+- /include| +- a.h| +- b.h| +- c.h+- /lib| +- libxxx.so+- /dependencies| +- libaaa.so| +- libbbb.so| +- libccc.so1. 接口信

2022-05-12 17:28:35 692

原创 【机器学习】机器学习入门概述

机器学习基本流程数据获取 :大量数据数据预处理:归一化,离散化、去除共线性(清洗数据,提高算法效果)特征工程:筛选显著特征,摒弃无用特征(数据和特征工程决定机器学习上限,算法决定模型上限)机器学习(模型训练):选模型,调参优化模型评估(效果预测):过拟合、欠拟合;精准率(P),召回率(F)机器学习算法分类监督学习数据集全部包含标签,标签在学习过程中起监督作用(猫、狗、兔子)房价预测,图像分析无监督学习数据集全部没有标签(自主学习数据映射关系。没有标签主要是因为数据太乱、标注成本高

2022-05-08 11:28:29 117

原创 【CMake】CMakeLists.txt速查手册

速查命令project(xxx) #关联变量 PROJECT_SOURCE_DIR PROJECT_NAMEcmake_minimum_required(VERSION 3.5) #指定cmake 版本aux_source_directory(./ SRC) #获取当前目录下所有.c .cpp .ccset(变量名 路径) 设置变量add_definitions(-Dhaha) #添加编译选项 比如宏定义hahamessage("sssss") #打印消息add_subdirect

2022-04-27 17:59:59 456

原创 C++根据类名创造不同的类对象(反射)

初衷最近在写一个SDK,想实现一个管理类,通过传入不同的类名字符串,来实现动态创建不同类。在Java等一些语音中,实现了一个机制:反射,个人理解可以通过字符串去创建对象,比如:std::string a = "testBase";//反射即可以通过字符串变量‘a’,来达到创建类”testBase“的目的这里折中了一下,不通过传入类名来达到创建类对象,而是通过回调函数的名字来达到创建类的目的。C++实现函数指针typedef void* (*funcp)();定义一个基类,所有的动态类对

2022-04-16 16:31:16 2169 2

原创 C++ lambda表达式详解

C++ lambda表达式详解

2022-04-10 00:22:37 244

原创 【操作系统】Linux程序内存结构&内存分配

@TOC【操作系统】Linux程序内存结构&内存分配【操作系统】Linux程序内存结构&内存分配对于一个32位的linux操作系统,他的进程内存分布如下图:低地址从0x00000000开始高地址到0xFFFFFFFF代码区:存放程序执行代码的一段内存,内存区域只读,并且在代码段中可能也包含一些只读常量。数据区分为已初始化数据区 (.data)和未初始化数据区(BSS),分别用来存放已经初始化的全局变量和静态变量和未初始化的全局变量和静态变量。其中BSS不占据目标文

2022-04-08 21:11:43 1407

原创 linux脚本自动远程windows并执行windows脚本

echo "sh ./Desktop/code/target.sh" | setsid env SSH_ASKPASS='./program/build/codescan/pw.sh' DISPLAY='none:0' ssh [email protected] 2>&1target.sh 为目标主机脚本,自动远程过去后会执行pw.sh 为存放密码的脚本

2020-09-07 15:00:18 1058

原创 C++ 智能指针

4个智能指针, auto_ptr, shared_ptr, weak_ptr, unique_ptr 其中后三个是C++11支持的,第一个已经被11弃用auto_ptr, 采用所有权模式,such as:auto_ptr p1(new string ("nice to meet you"));auto_ptr p2;p2 = p1; //it's ok//但是当程序访问p1时程序...

2020-02-07 18:09:12 97

原创 Linux套接字编程

linux套接字编程socket#include <sys/socket.h>int socket(int family, int type, int protocol);若成功返回非负描述符,出错返回-1 family: 协议族 AF_INETtype: 套接字类型 SOCK_STREAMprotocol:协议类型常值 0connect 客户用connec...

2020-02-05 16:43:41 147

原创 github搭建个人博客

博客搭建1. 环境需求windows操作系统github账号node.js npm 等相关内容gitbase or 其他git客户端2. 搭建GitHub博客2.1 创建仓库​ 新建一个仓库,名字为 你的名字.github.io 。将来你的网站访问地址就是http://你的名字.github.io所以每个github账户最多只能创建一个这样的仓库note:账号邮箱一点要验...

2020-02-05 16:41:28 608

原创 markdown随笔

markdown 练习手册 下划线是< u > < /u >去掉中间的空格** 是字体加粗*是斜体~~ 是删除线== 是高亮^是角标 x2~也是 h2是文本居中list有序数字+英文小数点. + 空格阿斯蒂无序+, - , * , 创建有序列表阿斯蒂芬阿斯蒂芬Todolist 参加会议 - [] 文字 参加比赛 - ...

2019-06-17 16:52:03 152

原创 C++ extern小结

extern小结C++ 支持分离式编译机制,允许将声明和定义分离开。 变量的声明规定了变量的类型和名字, 即使一个名字为程序所知,一个文件如果想使用别处定义的名字则必须包含对那个名字的声明。定义则负责创建与名字关联的实体。如果想声明一个变量而不定义extern int a; //声明不定义int a; //声明定义变量能且只能被定义一次, 但是可以被声明多次。多个文件共享co...

2019-06-02 20:17:00 622

原创 win10 terminal 折腾!

1 发布Windows Terminal在Build 2019开发者大会上公布。预计6月下旬出稳定版,目前只能在github上找到源代码地址:https://github.com/microsoft/Terminal2 先决条件:Windows 1903 1903 SDK VS 2017+ 以及相关组件然后github上源码本地调试.... but!!! 调试好麻烦啊...

2019-06-01 18:18:30 20154 14

原创 C++ this *this的区别

一般我们用的时候都是this. 或者 this-> 在看C++ primer的时候突然发现了 *this的用法this代表指向当前对象的指针 return this 即为 返回当前对象的地址*this代表当前对象的拷贝或者本身, 若返回类型为A 则是返回拷贝, 若返回类型是A& 则是返回本身....

2019-05-31 21:36:39 478

原创 HDU 1166 线段树

敌兵布阵题目链接大意:给你一个数列,和三个操作,Query操作为查询从i到j之间的数的和Add操作为第i个数加jSub操作为第i个数减j要求每次Query操作你给他一个正确的回答大概思路直接线段树,区间维护的为当前区间的总和,#include <iostream>#include <cstring>#include <cstdio>#in...

2019-04-13 15:43:06 161

原创 vim多行注释,多行取消注释

vim常用命令之多行注释和多行删除写代码发现测试代码的时候发现注释好麻烦,就去学了下1.多行注释,先进入命令模式,然后CTRL + v 进入列模式然后通过光标移动选择想注释的几行,然后大写字母I 进入插入模式,输入注释符,然后esc 会有点慢等下就好了取消注释,进入命令模式,CTRL + v列模式光标选择想取消的几行的注释,然后d...

2019-04-05 11:51:37 626

原创 vim

个人vim配置最近突然不想用gvim了,感觉每次运行都要新开窗口很麻烦,打算换成vim,win10正好有linux子系统,正好拿来用。去应用商店下载好ubuntu之后,开始配置vim根目录直接创建了个.vimrc下面是内容set number "显示行号set tabstop=4 "缩进set shiftwidth=4 "换行自动缩进4个空格set cindent "换行与上一...

2019-03-29 16:45:19 255

原创 poj-3276 Face The Right Way白书

Face The Right Way题目大意:给你一个字符串,包含B,F,两种字母,然后每次可以连续翻转K个,问每次翻转几个,就是问一个值,可以翻转最少次数,使字符串全部变为F思路:刚开始,一看这么简单,遍历1-n的K,枚举不就行了,呵呵呵,md肯定TLE,每枚举一次,时间复杂度大概是O(2^n) n最大5000 2000ms大概是10的9次方,也就是2的32次方左右,肯定超时,如果是对于同...

2019-03-27 21:56:13 182

原创 二分查找

二分查找1.有序数组查找某个值,时间复杂度O(logn)2.假定一个解判断是否可行,例:poj-1064有N条绳子,长度分别是Li,如果从他们当中切割出K条长度相同的绳子的话,这K条绳子每条最长能有多长,答案保留到小数点后2位。input:N = 4K = 11L = {8.02, 7.43, 4.57,5.39}二分:条件:F(x) 可以得到K条,长度为x的绳子 ...

2019-03-14 20:13:35 176

原创 poj 2236 Wireless Network

Wireless Network 并查集题目大意:有几个点,他们之间不超过一定距离的话,可以联通,然后有好多点,都是坏的,有两种行为一个是选择修复某一个点,另一个是测试两个点之间是否可以联通,如果可以联通的话,就输出SUCCESS 否则的话就输出FAIL其中,任意一个点都可以作为中转站解体思路:每修复一个点,就看下它与其他已经修复的点直接是否能联通,能得话就联通,然后构建一个树,判断...

2019-02-28 20:28:55 93

原创 最短路问题Bellman-Ford Dijkstra Floyd

最短路问题,Bellman-Ford单源最短路大概思路:起点s 到顶点i的最短距离为min(d[s, i], d[s, j] + d[j, i])s到i的距离即为,当前s到i的最短距离 和 s到j的距离+j到i的距离中的较小值struct edge //从顶点from指向to权值为cost的边{ int from, to, cost;}edge es[MAX]; //边...

2019-02-28 15:04:26 218

原创 linux 身份切换

su sudo 的一些用法rt@RTdust:~$rt代表当前用户,RTdust代表主机名 ~代表当前用户,$代表普通用户输入: su - 会提示你输入密码,即当前用户名的密码, 切换到root用户,root@RTdust:~#输入命令 sudo passwd root 修改root用户密码,普通用户切换到root用户也可以用susu + name直接su后面默认rootsudo ...

2019-01-20 14:43:08 255 3

原创 poj1062吐槽,代码没过,含一道题主自认错了的数据orz

昂贵的聘礼,题目链接昂贵的聘礼年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用10000个金币作为聘礼才答应把女儿嫁给他。探险家拿不出这么多金币,便请求酋长降低要求。酋长说:"嗯,如果你能够替我弄到大祭司的皮袄,我可以只要8000金币。如果你能够弄来他的水晶球,那么只要5000金币就行了。“探险家就跑到大祭司那里,向他要求皮袄或水晶球,大祭司要他...

2019-01-16 18:40:06 177

空空如也

空空如也

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

TA关注的人

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