C++
文章平均质量分 93
注释远方
往前看并且坚持、勇敢
展开
-
让工程设计的优雅起来——设计模式
一、前言当你开发过很多项目但都是在别人定义的框架接口下编程,有一天你会想if-else之外的世界是怎么样的;怎么能自己在工程项目中写出比较好的接口框架(合理的解决方案)设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些思想是具备通用性的。框架、设计者模式、架构?设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代...原创 2021-03-28 21:59:15 · 279 阅读 · 0 评论 -
C/C++——数据结构与LetCode经典笔试
前言:理解数据结构的知识是有必要的,但是使用C来编写这些数据结构的工作(轮子)已经被C++做好了。所以在什么情况下使用什么样的轮子使我们考虑的一、数据结构基础数据结构研究数据的存储方式,使数据之间有一定逻辑关系,方便后期对数据的再利用和管理;即如何存储具有复杂关系的数据更有助于后期对数据的再利用。 数据结构存储结构:线性表,还可细分为顺序表、链表、栈和队列;树结构,包括普通树,二叉树,线索二叉树等;图存储结构线性表:将具有“一对一”关系的数据“线性”地存储到物理空...原创 2021-02-21 18:01:06 · 494 阅读 · 0 评论 -
数字信号处理15——速度解模糊之中国剩余定理
目录一、前言二、中国余数定理三、速度解模糊算法一、前言二、中国余数定理三、速度解模糊算法原创 2020-12-06 17:20:11 · 3743 阅读 · 1 评论 -
数字信号处理12——嵌入式软件开发经验
一、位求和运算计算二进制位的求和,如bsum(7&0x0000FFF);```cint bsum(int arg){ int res = 0; for (int i = 0; i<32; i++) { res += arg & (int)1; arg >>= (int)1;...原创 2020-11-27 21:50:54 · 896 阅读 · 0 评论 -
线程云集(二)——C++STL线程池
线程池:一种线程的使用模式,线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务,避免了在处理短时间任务时创建与销毁线程的代价,防止过度调度。这里使用std::thread创建线程池,包括启动(start()),停止方法(stop()),及任务添加方法(addTask).start()创建一定数量的线程池,进行线程循环.stop()停止所有线程循环,回收所有资源.addTask()添加任务引用:https://www.cnb...原创 2020-08-14 11:53:42 · 826 阅读 · 0 评论 -
C++ INI配置文件——用pugixml 对XML解析(这一篇就够了)
目录一、XML文件格式(INI文件)二、pugixml解析INI配置文件实例一、XML文件格式(INI文件)<?xml version="1.0"?><Tools> <toolsPaths> <SavePathDoc value="C:/tools/" /> <SavePathImg value="C:/tools...原创 2020-01-15 19:14:20 · 1090 阅读 · 0 评论 -
c++实战——undefined reference xxxx,内联函数,extern陷阱(附录:g++与gcc)
一、undefined reference xxxx原因:1.1使用者自己定义的函数或者全局变量所在源代码文件,没有被编译、连接,或者干脆还没有定义,这 需要使用者根据实际情况修改源程序,给出全局变量或者函数的定义体;若全局 namespace xxx 被class xxx 覆盖,请加上:: ;1.2是未定义的符号是一个标准的库函数,在源程序中使用了该库函数,而连接过程中还没...原创 2019-01-22 17:06:47 · 2169 阅读 · 0 评论 -
vscode——详细总结篇、简单易懂debug
一、先来个demo文件夹debug_vs下,只有一个mian.cpp,一个cmakelists.txt,然后进行外部构建建立一个build文件夹存放临时文件。以上是cmakeLists.txt文本文件,注意第三行的设置为debug模式(在这里如果不设置,出现无法调试,直接执行结束)launch.json文件是用来进行运行配置的这里需要修改两处,12line设置为可执行文...原创 2019-01-21 22:55:52 · 50198 阅读 · 3 评论 -
VScode——安装、使用
一、安装1、下载地址:Visual Studio Code官网https://code.visualstudio.com/docs?dv=linux642、解压: tar zxvf 文件名 -c /usr/local/ 或者鼠标右击解压,放在/usr/local/3、添加执行权限:chmod +x /usr/local/VSCode-linux-x64/code4、创建桌面图标...原创 2019-01-09 22:53:21 · 556 阅读 · 0 评论 -
c++——读取txt文本getline(),string.substr(pos1,pos2)
std::ifstream gpsFile;gpsFile.open(txt_name, std::ifstream::in); //gParams->cntrlParams.offlineRouteif (gpsFile.is_open()){ while (getline(gpsFile, line,'\n')){//do sometning;}一、getl...原创 2019-01-18 19:15:49 · 862 阅读 · 0 评论 -
C++—— 矩阵运算线性加速库Eigen&&time计时
一、时间计时ctime,windows.h,sys/time.h,Timer.h的比较说明及压缩包时间计时下载跨平台运行时间计时Timer.h,可以在Unix/Linux/Mac and Windows system使用,使用demo:#include <iostream>#include "Timer.h"using namespace std;int main...翻译 2019-01-08 10:10:18 · 2851 阅读 · 0 评论 -
c++——friend友元,递归
Friend关键字:采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分(注意友元函数不是类的一部分),但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查...翻译 2018-10-07 21:30:39 · 173 阅读 · 0 评论 -
C++—— 数组名与向量名
首先说一下自己的理解,然后参考理解1、数组名代表数组的第一个元素的首地址2、向量名代表这个容器的名字,&向量名表示这个容器的首地址3、当拷贝给相同类型的其他变量时,采用值拷贝,即* 地址传值;实例:数组:向量:以下转自:http://www.cnblogs.com/chhuach2005/p/3627011.htmlhttps://blog.cs...翻译 2018-07-07 12:40:52 · 1125 阅读 · 0 评论 -
C++——STL常用类总结笔记
一、STL =Standard Template Library标准模板库,惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。这可能是一个历史上最令人兴奋的工具的最无聊的术语。从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一...原创 2018-05-23 20:30:45 · 3744 阅读 · 0 评论 -
C/C++—— string库(string.h)字符串查找函数
常用的string:C/C++ string库(string.h)提供了几个字符串查找函数,如下:memchr 在指定内存里定位给定字符 strchr 在指定字符串里定位给定字符 strcspn 返回在字符串str1里找到字符串str2里的任意一个字符之前已查找的字符数量 strrchr 在字符串里定位给定字符最后一次出现的位置 strpbrk ...转载 2018-06-22 15:39:58 · 1477 阅读 · 0 评论 -
C++——cmath函数列表
using ::abs; //绝对值 using ::acos; //反余弦 using ::acosf; //反余弦 using ::acosl; //反余弦 using ::asin; //反正弦 using ::asinf; //反正弦 using ::asinl; //反正弦 using ::atan; //反正切 using ::ata...转载 2018-06-23 15:15:49 · 1006 阅读 · 0 评论 -
C++——lambda表达式的理解
基本语法简单来说,Lambda函数也就是一个函数,它的语法定义如下:复制代码 代码如下:[capture](parameters) mutable ->return-type{statement}1.[capture]:捕捉列表。捕捉列表总是出现在Lambda函数的开始处。实际上,[]是Lambda引出符。编译器根据该引出符判断接下来的代码是否是Lambda函数。捕捉列表能...转载 2018-06-23 17:19:07 · 523 阅读 · 0 评论 -
C++——#include "stdafx.h"
为什么有时候去掉就不能运行,有时候去掉才能运行呢?请详细说明一下,非常感谢!#include "stdafx.h"是预编译处理器把stdafx.h文件中的内容加载到程序中来。stdafx.h1名称的英文全称为:StandardApplication Fram Extend所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afx...转载 2018-06-25 15:14:38 · 196 阅读 · 0 评论 -
C++——STL之迭代器
原文地址:http://www.cnblogs.com/qunews/p/3761405.html1 头文件所有容器有含有其各自的迭代器型别(iterator types),所以当你使用一般的容器迭代器时,并不需要含入专门的头文件。不过有几种特别的迭代器,例如逆向迭代器,被定义于<iterator>中。2 迭代器类型迭代器共分为五种,分别为: Input iterato...转载 2018-06-25 15:44:44 · 192 阅读 · 0 评论 -
C++—— 别迷惑之关键字const
这篇总结的贼好,忍不住转过来!定义:const 是constant的缩写,本意是不变的,不易改变的意思。const 在C++中是用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数一、const修饰普通类型的变量1 const int a = 7; 3 int b = a; //it's right5 a = 8; // it's wrong...转载 2018-07-02 15:53:31 · 415 阅读 · 0 评论 -
c++ ——文件流fstream
搜索了一些关于txt文件读写的资料,下面有些比较好的http://blog.chinaunix.net/uid-25749806-id-345845.html(这篇也还行https://blog.csdn.net/zmdsjtu/article/details/53162172)ofstream: 写操作(输出)的文件类 (由ostream引申而来)ifstream: 读操作(输入...转载 2018-07-17 16:19:12 · 874 阅读 · 0 评论 -
C++ ——分割txt文本逗号,用到一些函数介绍
string 类成员函数:find ,substr,c_str()1)find(const std::basic_string<char> &__str, optional size_type __pos);第一个参数,字符串第二个参数,可选参数,如果有,就是从pos位置开始,往后寻找指定的字符或是字符串返回:找到 -- 返回 第一个字符的索引,没找到--返回...翻译 2018-07-18 10:58:59 · 1333 阅读 · 0 评论