- 博客(13)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 线程安全变量封装(C++)
在写使用多线程的项目的时候,经常需要给一个变量加锁保护。这里提供一个对需要加锁的变量使用的封装格式。这里提供普通变量以及std::vector和std::deque两个标准库的封装格式。其他的结构也是相似原理。使用方式 DoubleBufferData<int> data; data = 7; int m = data; std::cout << m << std::endl;单独变量封装#pragma once#include.
2020-12-31 19:28:47 643 2
原创 C++静态内存共享(常用于多个模块建的解耦合)
同一个程序的静态堆栈空间(static、全局变量所存放的位置)只有一个,所以我们可以利用这块空间进行不同so中的操作。比如,一个so负责声明,另一个so负责实现,而且不需要直接相互包含。下面给出一个例子,我会给出文件目录、所有文件内容以及编译脚本。其中clang++可以换成g++,版本需要支持c++17。目录结构-- helloworld -- libFuncImpl -- FuncImpl.h -- FuncImpl.cpp -- libFuncDecl -- FuncDecl..
2020-12-31 18:53:38 359
原创 mac上VScode如何配置C++使用(方法出自于官网,很傻瓜,也很明白)
下面的方法基本是照抄官网的,只是翻译了一下,再加上一丢丢自己的备注。本来不想麻烦的,因为VS code是很大众的编译器了,想着随便搜个教程,傻瓜式看着照搬就行了吧。结果不尽人意,排名靠前的试了试,都多少有问题,原理说的也不明白。最后还是自己去官网找了一下,英文看的不是很流利,但是非常傻瓜,使用方式,每一步的目的也都很清楚。在VS code中使用Clang++的方法在这篇指导中,你将学到如何在macOS系统中,使用Clang/LLVM的编译和调试器配置Visual Studio Code。下面.
2020-12-30 20:52:07 2464
原创 std::regex匹配正则表达式C++11
C++11中引入的这个正则表达式解析的还是挺好用的。代码unpack_call 的目的是将input拆分出name和value的值。这个例子没什么用,就看看效果就好例子:name: hello ; value: world打印输出:name: hello ; value: worldhelloworld#include <regex>static bool diag_call(const std::string& input){ // s 是匹配空格.
2020-12-24 21:02:19 914 1
转载 Linux errno详解
转自:https://www.cnblogs.com/Jimmy1988/p/7485133.html1. 错误码 / errnoLinux中系统调用的错误都存储于 errno中,errno由操作系统维护,存储就近发生的错误,即下一次的错误码会覆盖掉上一次的错误。PS: 只有当系统调用或者调用lib函数时出错,才会置位errno!查看系统中所有的errno所代表的含义,可以采用如下的代码:/* Function: obtain the errno string* char *stre.
2020-12-24 19:35:35 672 1
原创 C++你不知道的一个小技巧
你写C++使用模板吗?欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样.
2020-12-24 19:15:34 76 2
原创 类型安全转换汇总(C++)
平时在进行类型转换时,特别是从字符串转换为数字时,都要考虑安全问题。既不能默许,又应该及时发现处理,于是,自己写了安全的封装。正文static int32_t bool_to_int(const bool b)
2020-12-21 17:41:04 459
原创 C++级联Builder实现方式1
太简单的我就不记录了,下面的方式感觉封装效果非常好,可以视情况使用。摘选自Design Patterns in Modern C++ 一书中。类图表示源码#include <...>class PersonBuilder;class PersonAddressBuilder;class PersonJobBuilder;class Person{ // address std::string street_address, post_code, city; /.
2020-12-11 02:29:11 389
原创 gstreamer命令参数优化
原命令gst-launch-1.0 rtspsrc latency=8 location=rtsp://admin:aIlab1234@192.168.2.101/h264/ch1/main/av_stream ! rtph264depay ! queue ! nvv4l2decoder ! nvvidconv ! video/x-raw, width=1280, height=720 ! nvvidconv ! nvv4l2h264enc profile=4 iframeinterval=30 bitr
2020-12-10 18:17:34 5529
原创 libjpeg-turbo测试解压缩性能
许久以前的代码,随便记录一下#include <stdio.h>#include <stdlib.h>#include <sys/time.h>#include <unistd.h>#include <sys/stat.h>#include <turbojpeg.h>typedef unsigned char uchar;typedef struct tjp_info { int outwidth; in.
2020-12-10 02:17:38 1332
原创 遍历目录下的所有文件
#include <dirent.h>#include <string.h>#include <iostream>#include <vector>#include <string>namespace {void Usage(const char* exe){ fprintf(stderr, "input params error, run this exe as following command line:\n"); fp
2020-12-09 02:31:36 475
原创 实用工具记忆(因为有些强大的工具,但是又不常用到,怕会忘记)
windowsVLD(Visual Leak Detector)windows上的内存泄漏检测工具Wiresharkwindows上的抓包工具WinHex二进制文件查看工具Typoramarkdown文档编写工具MPC-HC和VLC视频文件详细信息查看工具Datahammer二进制数据查看图像工具progressmonitor进程监管工具linuxvalgrindlinux上的内存泄漏检测工具...
2020-12-08 22:49:41 145
原创 创建linux容器的远程登录
需要使用到ssh,没有的话要提前安装。参考链接:https://www.jianshu.com/p/c4d4ee6f3663systemd-nspawn启动容器systemd-nspawn -D [directory] --machine [name],如:root@leez:~# ls /mnt/data4firefly-rk-dev.tar firefly-rk-prod firefly-rk-prod.tgzsystemd-nspawn -D /mnt/data4/firefly-.
2020-12-07 11:08:11 197
背包九讲(version 1.1 build 20071115)
2017-03-27
ubuntu系统下ROS智能小车建出来的地图可以保存吗?
2017-08-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人