
C++
斗转星移3
这个作者很懒,什么都没留下…
展开
-
ROS源代码阅读(2)-网络参数初始化
ros源码阅读原创 2023-03-20 00:22:37 · 8217 阅读 · 1 评论 -
Windows cmake-gui 添加c++ 11 c++ 14 c++ 17
Windows cmake-gui 添加c++ 11 c++ 14 c++ 17原创 2022-12-10 01:17:39 · 10583 阅读 · 0 评论 -
c++成员变量赋值导致段错误崩溃的一种可能原因
c++ 崩溃原创 2022-09-01 23:02:27 · 3130 阅读 · 0 评论 -
ROS源代码阅读(1)
ros源码阅读原创 2022-07-31 22:29:52 · 3505 阅读 · 0 评论 -
Visual Studio大写小写转换切换快捷键
Visual Studio大写小写转换切换快捷键Visual Studio:小写快捷键:ctrl + u大写快捷键: ctrl + shift + u原创 2022-01-05 23:04:33 · 7058 阅读 · 0 评论 -
Visual Studio 的字体和格式设置(转载)
原文链接:https://docs.microsoft.com/zh-cn/visualstudio/extensibility/ux-guidelines/fonts-and-formatting-for-visual-studio?view=vs-2022环境字体Visual Studio 中的所有字体都必须向用户公开,以便进行自定义。 这主要通过 "工具 > 选项" 对话框中的 "字体和颜色" 页完成。 字体设置的三种主要类别是: 环境字体-IDE (集成开发环境的主要字体)..转载 2021-12-27 01:02:12 · 8167 阅读 · 0 评论 -
Ubuntu使用清华源( 镜像)步骤官方教程 帮助
Ubuntu使用清华源( 镜像)步骤官方教程 帮助很多东西明明是看过,但就是忘记在哪里有,那就记录下来吧,下次好找。ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirrorhttps://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/Ubuntu设置清华源步骤官方教程:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/Ubuntu 的软..原创 2021-09-10 00:22:29 · 61282 阅读 · 0 评论 -
error: ‘function’ is not a member of ‘std’
最让人容易想到的是需要包含头文件#include <functional>但有一个细节就是很多人会忽略就是需要C++11以上版本的支持。根据不同编译器添加c++11支持就可以了。std::function was introduced in C++11 which is not supported in Visual C++ 6.0.如是cmake 添加c++11支持可以看我的另一篇博客。https://blog.youkuaiyun.com/lxj362343/article/det原创 2021-08-11 23:46:07 · 1153 阅读 · 0 评论 -
ros::Exception
ros::Exception在ros/roscpp_core/cpp_common/include/ros/exception.h中定义定义如下:/* * Copyright (C) 2009, Willow Garage, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following.原创 2021-08-07 11:27:19 · 337 阅读 · 0 评论 -
C/C++ ROS源码中如何判断是不是局域网IP
以下摘抄自ROS源码中,根据函数名称可以知道是用于判断处于局域网static bool isPrivateIP(const char *ip){ bool b = !strncmp("192.168", ip, 7) || !strncmp("10.", ip, 3) || !strncmp("169.254", ip, 7); return b;}但是根据查找资料,有个不是很理解的地方就是169.254段的网络好像不是局域网,不知道是不是代码有bug?还是怎么.原创 2021-08-03 13:12:19 · 283 阅读 · 0 评论 -
c++ switch case注意事项 踩坑记 switch 和第一个case之间如果插入代码
一般书上写的switch case的语法是switch (integer-expression){case label1 : statement(s)case label2 : statement(s)...default : statement(s)但是你们没有人告诉我们switch 和第一个case之间如果插入代码会怎么样。比如下面的这段代码int index =2;switch (index){ int a =5; printf("无法输出 %d..原创 2021-07-25 11:58:47 · 1139 阅读 · 0 评论 -
cmake 设置支持c++11 This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options
#error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.add_definitions(-std=c++11)或者set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11.原创 2021-07-20 13:05:09 · 882 阅读 · 0 评论 -
linux 信号signum.h SIGINT SIGUSR1 SIGUSR2
头文件signum.h/* Signals. */#define SIGHUP 1 /* Hangup (POSIX). */#define SIGINT 2 /* Interrupt (ANSI). */#define SIGQUIT 3 /* Quit (POSIX). */#define SIGILL 4 /* Illegal instruction (ANSI). */#d...原创 2021-08-26 19:21:52 · 2208 阅读 · 0 评论 -
c++ 命名空间 namespace using namespace
初学者肯定对命名空间感觉很神秘很难理解,其实是比较简单的,只是比较正规的解释都很难懂。那么我今天就和大家用通俗的方法来解释下吧。想比大家都听过相同的地名吧!比如:浙江的温州有水头镇,福建泉州南安也有水头镇,还有其他地方也有水头镇。福建南安市水头镇 浙江省温州市平阳县水头镇 广东佛冈县水头镇 山西省运城市夏县水头镇 山西省吕梁市交口县水头镇那么有一个人和你说水头镇的时候你知道哪个水头镇吗?同样的你应该也听过不同班的同学有相同的名字吧?那么你是怎么区分他们两个人呢?这时候我们就要在前加原创 2021-06-29 20:03:25 · 276 阅读 · 0 评论 -
ros(ros1) 相关的源码地址以及一些其他有用的地址
https://github.com/ros/ros_commhttps://github.com/ros/ros_tutorialshttps://github.com/ros-visualization/rvizhttps://github.com/ros-visualization原创 2021-07-17 07:33:16 · 2793 阅读 · 0 评论 -
cmake 几种包含源文件生成可执行文件的方法总结
最近做的项目都是使用Cmake,但在参考开源项目的代码的时候,发现不同的人使用不同的方法,这时候你可能会不知所以然,但其实就是人们说的,条条大路通罗马,你不必纠结使用哪种方法,能通往罗马就可以啦。这总结了别人常用的几种方法,也是学习的总结。可能有不足的地方,仅供参考,如有错误的地方欢迎指正。1.方法1set(SRC_LIST main.c test1.c test2.cpp)add_executable(Demo ${SRC_LIST})(1)定义了这个工程会生成一个文件名为 hello .原创 2021-06-26 16:51:33 · 4348 阅读 · 0 评论 -
catkin_make -DCATKIN_ENABLE_TESTING=False
catkin_make -DCATKIN_ENABLE_TESTING=Falsecatkin_init_workspacecd ..catkin_make cleancatkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Releasecatkin_make install原创 2021-06-21 20:21:41 · 765 阅读 · 0 评论 -
自己写的程序 出现0xc000007b——应用程序无法正常启动
出现这样的情况尝试过很多种网上说的,但没找到有一个是适合我的,后面根据经验更换dll就好了。也就是说可能是你的dll版本和你的程序文件不匹配,一个个的去尝试查找到匹配的版本吧。工作量还是有点艰巨哈。...原创 2021-05-16 17:26:38 · 274 阅读 · 0 评论 -
c++ Eigen 矩阵和矢量运算 算法
记录下今天看到的一个东西。Eigen是一个高层次的C ++库,有效支持线性代数,矩阵和矢量运算,数值分析及其相关的算法。Eigen是一个开源库,原创 2021-03-29 16:55:22 · 394 阅读 · 0 评论 -
无名管道(pipe)--实现管道双向通信
上一篇的管道通信可以看得出来,管道通信是单向的,只能一端写入,一端读取,有点类似通信中的单工通信,若要实现双工通信,可以采用两个单工通信。同样的道理,要实现管道双向通信,采用两个管道即可。上图完成这样一项任务:父进程负责输入两个数据x,y到管道,然后从管道读取他们相加的返回结果,子进程从管道读取x和y的值,执行add操作(这里还是和上个程序一样,采用exec函数来执行程序,所以必须先写一个add.c文件,然后编译链接程add文件)。这里的add.c文件中,我们会选择从标准输入读取数据,然后会把...转载 2021-03-05 16:32:33 · 2132 阅读 · 0 评论 -
C++ 构造函数初始化列表对成员变量进行初始化 和 构造函数的函数体对成员变量进行初始化 区别
一直知道初始化列用初始化列表对成员变量进行初始化比构造函数的函数体对成员变量进行初始化好,但就是要我说原因用专业名称总是说不出来,只能说都是靠对C++“语感”来做,今天就特意找了下相对专业名称的答案记录下,答案摘抄自网络,版权归原博主所有,这里仅供参考。C++ 中提供了初始化列表对成员变量进行初始化,其语法规则为: 1,代码示例:1 ClassName::ClassName() : m1(v1), m2(v1, v2), m3(v3) // 用 v1, (v1, v2), v3 分别对...转载 2021-03-05 16:06:18 · 343 阅读 · 0 评论 -
mmap映射区和shm共享内存的区别总结(转载)
linux中的两种共享内存。一种是我们的IPC通信System V版本的共享内存,另外的一种就是我们今天提到的存储映射I/O(mmap函数)在说mmap之前我们先说一下普通的读写文件的原理,进程调用read或是write后会陷入内核,因为这两个函数都是系统调用,进入系统调用后,内核开始读写文件,假设内核在读取文件,内核首先把文件读入自己的内核空间,读完之后进程在内核回归用户态,内核把读入内核内存的数据再copy进入进程的用户态内存空间。实际上我们同一份文件内容相当于读了两次,先读入内核空间,再从内核空间转载 2021-03-04 09:28:28 · 279 阅读 · 1 评论 -
c++ 堆和栈的区别(转载)
转载自:https://zhuanlan.zhihu.com/p/78478567一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和.转载 2021-03-03 10:42:40 · 886 阅读 · 0 评论 -
ascii表
每次要用ascii都要去网上查一次ascii表,其实也比较容易找,但每次查找一次至少几分钟,因为要同时包含二进制、十进制、十六进制、控制字符的ascii表 很少,现在就保留一份方便以后查找。图片来自网络,如有侵权请联系删除。...原创 2021-01-20 09:38:11 · 874 阅读 · 0 评论 -
Qt error: within this context
error: within this context遇到这个问题突然不知道怎么解决,还好编译器提示在哪个地方出错了,对程序的敏感性,很快的发现成员函数是private而不是public的。更改成public就可以了。另外也要吐槽下,印象中其他编译器是会提示成员变量为private的,但我用的这个版本这次居然没有提示,不清楚这次为什么没有提示。...原创 2021-01-18 16:30:04 · 6595 阅读 · 1 评论 -
#define语句后面加分号(转载)
博文一转载自:https://www.sohu.com/a/366877346_298038为什么一般来说#define后面没有分号?所谓#define语句后面一般没有分号的原因在于,将要替换的字符串还原之后,导致还原位置的语句出现问题,因此才使得后面不能有分号。也就是说,如果替换之后,语法正常,其实是可以的(注意空格问题)。//来源:公众号【编程珠玑】#include<stdio.h>#defineNUM 1024;intmain(void){in...原创 2021-01-18 09:38:06 · 6648 阅读 · 1 评论 -
c++ 编程常见几个英文词汇意思 request response query
request与responseQuery与Inquiry原创 2021-01-06 15:02:08 · 1039 阅读 · 0 评论 -
网络字节序 大端( big endian) 小端 (little endian) 字节序 主机序
以前经常遇到大端、小端、网络字节序、字节序 、主机序等概念经常记住了又忘记,用的时候就查,很耗时,终归其实也是没有完全理解导致,这次就记录一下吧,将这个理解透彻吧。查网上资料看了感觉还是不是很可信,于是我查阅了多本书籍,并截图,方便以后查阅与复习。如果有侵权请联系及时删除。前言:我个人认为应该分成存储中大小端和网络中的大小端,当然这个是我个人理解,还不一定对,有待验证。一、存储中的大端与小端摘抄《ARM体系结构与编程》二、存储中的大端与小端和网络中的大小端...原创 2020-12-22 23:32:40 · 4565 阅读 · 0 评论 -
Qt c++ error: expected class-name before ‘{‘ token
error: expected class-name before '{' token{^可能的原因有以下几种可能:1.头文件的宏定义HEAD_H是一样的(此项摘抄自网络,未验证)#ifndef HEAD_H#define HEAD_H....#endif2.继承的基类的头文件没有包含进来(这个是我曾经犯的错误,比较容易查)比如以下如果缺头文件#include "cbase.h"就会报错#ifndef CDRIVED_H#define CDRIVED_H...原创 2020-12-17 00:37:35 · 8607 阅读 · 2 评论 -
谷歌c++ 代码规范(在线和pdf下载链接)
下载链接,截止2020.12.12,进入看了下,此链接中的规范还在持续更新中https://github.com/zh-google-styleguide/zh-google-styleguide/releases另外有一个在线版的https://zh-google-styleguide.readthedocs.io/en/latest/google-cpp-styleguide/...原创 2020-12-12 10:15:37 · 2652 阅读 · 0 评论 -
对Delphi的begin 和end类比c/c++语言的理解
由于没有学过Delphi因此对Delphi是陌生的,但工作需要于是看了下部分代码。感觉Delphi的begin和end就是c++/c语言中的大括号,就是一个作用域的限制。比如:num := 0;count := 5;for i:=0 to count dobeginnum := num + 1;end;修改成c/c++就是 int i = 0; int num = 0; for( i = 0;i<5;i++) {//这里的{相当于...原创 2020-09-18 09:53:18 · 624 阅读 · 1 评论 -
delphi var 和c c++ 类比 有点像指针/引用
添加var 是地址传递,会修改原有的变量,类似c/c++的引用和指针function PlusByValue(x: integer): integer; //类似c/c++数值传参,是一份拷贝,x在函数内部改变,外部不会改变begin x:= x + 1; result := x;end;function PlusByRef(var x: integer): integer; //x是数值参数,值传递,类似c/c++的引用和指针,x在函数内部改变,外部也改变begin x:= x ...原创 2020-09-18 12:04:56 · 263 阅读 · 0 评论 -
c++ 设计模式推荐书籍
自在学设计模式,但是有些书籍看着你会有很多疑问,而且很设计模式的书籍都是java和c#写的,你可能不是很熟悉代码风格。并且设计模式有不同的实现方法,书籍中的方法不一定是最后好的,因此同一种设计模式最后多看几本不同的书籍,下面罗列网友推荐的几本书籍,部分书籍我自己也在看。1、《Head First设计模式》2、《大话设计模式》 ——是.NET中的c#写的3、《设计模式之禅》4、《重构与模式》5、《设计模式精解-GoF 23 种设计模式解析附 C++实现源码》——作者武汉大学:K_Ecke.原创 2020-12-09 10:29:32 · 6537 阅读 · 0 评论 -
c++ switch 支持的类型
以前一直没有注意switch表达式中的标签支持哪些类型,使用了自定义类型编译不过,才去注意下switch支持哪些类型,网上说Java支持的有byte、short、int、char(JDK1.6),还有枚举类型,但是在JDK1.7后添加了对String类型的判断,为了弄明白C++支持哪些我还是查了下比较权威是书籍。以下摘抄C++ Primer Plus,可以知道c++中switch 表达式支持int型和char型,还有enum型 ,当为枚举类型时会强制转换为int型。是否还支持其他类型还需要查阅更多的资料原创 2020-11-18 23:22:17 · 3139 阅读 · 0 评论 -
c++ 设计模式之UML图
虚线+箭头是表示即依赖的关系,实线+箭头表示关联的关系,虚线+空心右三角表示implements,实线+空心右三角表示的是泛化,即类的继承关系。实线+空心菱形表示的是聚合的关系,实线+实心菱形则表示 组合的关系。‘+’表示public,‘-’表示private,‘#’表示protected。 https://www.cnblogs.com/huaxingtianxia/p/6590351.html...原创 2020-11-03 11:26:15 · 1397 阅读 · 1 评论 -
C++ explicit关键字详解(转载)
版权声明:本文为优快云博主[tiankong19999]原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.youkuaiyun.com/guoyunfei123/article/details/89003369首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为impli...转载 2020-11-02 21:21:29 · 95 阅读 · 0 评论 -
C++ std::for_each
原文:http://www.cplusplus.com/reference/algorithm/for_each/function template<algorithm> //头文件std::for_eachtemplate <class InputIterator, class Function> Function for_each (InputIterator first, InputIterator last, Function fn);Apply.原创 2020-10-31 13:26:41 · 546 阅读 · 0 评论 -
GDB之调试器用法(转载)
转载自:https://www.cnblogs.com/jimodetiantang/p/9170645.htmlGDB之调试器用法GDB 完成的作用:启动程序,可以按照工程师自定义的要求随心所欲的运行程序 让被调试的程序在工程师指定的断点处停住,断点可以是条件表达式 当程序被停住时,可以检查此时程序中所发生的事,并追索上文 动态改变程序的运行环境常见问题:如何打印变量的值?(print var) 如何打印变量的地址?(print &var) 如何打印地址的数据值?(pr转载 2020-10-31 11:53:49 · 477 阅读 · 0 评论 -
c++ std::atomic
网上看别人写的代码看不懂,std::atomic去c++官网查了下:http://www.cplusplus.com/reference/atomic/摘抄如下:header<atomic>AtomicAtomic types are types that encapsulate a value whose access is guaranteed to not cause data races and can be used to synchronize memory原创 2020-10-30 22:26:59 · 256 阅读 · 0 评论 -
c++ sprintf_s 和 sprintf 区别 double转换成string型(浮点数的格式化)(转载)
转载参考自:https://www.cnblogs.com/finallyliuyu/archive/2010/08/27/1810071.htmlhttps://blog.youkuaiyun.com/qq_37221466/article/details/81140901sprintf_s是sprintf的安全版本,指定缓冲区长度来避免sprintf()存在的溢出风险,主要差在sprintf_s第二个参数,可以控制缓冲区大小sprintf/sprintf_s指的是字符串格式化命令,主要功能是把.转载 2020-10-30 22:59:03 · 2115 阅读 · 0 评论