![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
Code_DZhangTeng
一步一个脚印
展开
-
win10与ubuntu双系统如何为ubuntu扩容,挂载新的硬盘空间
如何为 Ubuntu 扩容(添加新的硬盘空间)? X_Imagine 于 2021-12-11 16:29:36&...转载 2022-05-31 10:21:38 · 5369 阅读 · 5 评论 -
git commands 总结
git功能很强大,但往往只用自己熟悉的命令,有很多神奇的魔法没有用到,总结记录一下。一、配置git config 改变git的默认配置,例如你的名字,指定的终端颜色,指定的编译器等。git help 用来显示任何命令的git自带文档。二、获取与创建项目有两种方式获得一个git仓库;一种是从网络或者其他地方拷贝一个现有仓库,另一种就是再一个目录中创建一个新的仓库。git init 可以将一个目录转化为一个git仓库。git clone...原创 2022-05-19 11:47:00 · 339 阅读 · 0 评论 -
C++笔记之值传递,地址传递,引用传递
值传递:形参不会修饰实参;地址传递:形参会修饰实参;引用传递:形参会修饰实参;可以简化指针修改实参。原创 2021-09-07 20:22:51 · 220 阅读 · 0 评论 -
C++笔记之std::map容器_demo_示例
C++中的std::map容器链接是概念介绍和简单用法笔记,下面是一个比较全的代码。原创 2021-08-02 19:49:11 · 273 阅读 · 0 评论 -
C++笔记之std::queue容器
queue容器:是一种先进先出(FirstInFirstOut,FIFO)的数据结构,它有两个出口。队列中只有队头和队尾才可以被外界使用,队列不允许有遍历行为。入队:队列中进数据-----push出队:队列中出数据-----pop构造函数:queue<T>que;//默认构造采用模板类实现,queue(constqueue&data);//拷贝构造赋值操作:queue&operator=(constqueue&am...原创 2021-08-02 19:41:15 · 717 阅读 · 0 评论 -
C++笔记之std::stack容器
stack容器:是一种先进后出(FirstInLastOut)的数据结构,它只有一个出口。栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为。入栈:栈中进入数据-----push出栈:栈中弹出数据-----pop构造函数:stack<T>data;//stack采用模板类实现,stack对象的默认构造形式stack(conststack&data);//拷贝构造函数赋值操作:stack&op...原创 2021-07-20 20:15:48 · 421 阅读 · 0 评论 -
C++笔记之std::vector容器
vector实质是C++的一个类,与数组很相似,但是vector的优势是可以动态扩展,不需要考虑其内存大小。1.vector的构造函数原型:vector<T>data;//使用模板类,默认构造函数vector(data.begin(),data.end());//将data的【begin(),end())区间中的元素拷贝给本身,注意是数学中的前闭后开区间vector(n,elem);//将n个elem元素拷贝给本身vector(co...原创 2021-07-02 21:50:14 · 1027 阅读 · 4 评论 -
C++笔记之std::string容器
string是C++风格的字符串,其本质是一个类。char * 是一个指针;string是一个类,类内部封装了char*,string类内部封装了he原创 2021-06-29 20:29:45 · 292 阅读 · 4 评论 -
C++基础之标准模板库STL
1. STL(Standard Template Library;标准模板库)STL从广义上分为:容器;算法;迭代器;容器和算法之间tong'guo原创 2021-06-15 19:56:08 · 110 阅读 · 0 评论 -
C++基础之Vector容器中存放自定义数据类型
1. 先介绍一下存放内置数据类型的Vector容器使用。#include <iostream>#include <vector> //vector的头文件#include <algorithm> //标准算法的头文件void fun_creat_vector (){ std::vector<int8_t> data; // 创建一个vector容器 data.push_back(1); // 向容器中插入数据1 data.原创 2021-06-09 15:04:02 · 1673 阅读 · 0 评论 -
C++基础之map容器
1. map的依赖--pair对组pair是成对出现的数据: 两种定义形式:①默认构造 pair<type,type> data (value1,value2);②make_pair构造 pair<type,type> data = make_pair(value1,value2);pair<string,int> p("code_dZt",28);std::cout << p.first << " " << p.s原创 2021-05-28 19:28:04 · 1138 阅读 · 0 评论 -
Linux嵌入式开发笔记(十二)智能指针和实例化的两种写法
一,使用智能指针class AA{public: AA(); ~AA(); void StartService(); void EndService();private: std::unique_ptr<std::thread> t1_; std::unique_ptr<NAMESPACE::CalMqtt> Srv_Mqtt_;};AA::AA(){ Srv_Mqtt_.reset(new CalMqtt原创 2021-05-10 13:38:55 · 211 阅读 · 0 评论 -
MQTTClient_connect return -1的解决方法
调用函数 rc = MQTTClient_connect(client, &conn_opts);rc = MQTTClient_connect(client, &conn_opts); //将先前创建的客户端连接到MQTT服务器。 // MQTTClient handle,//指向MQTT客户端句柄的指针。句柄被成功从函数中返回的客户端引用所填充 // MQTTClient_connectOptions * options //op...原创 2021-02-01 14:30:40 · 7207 阅读 · 4 评论 -
Protobuf学习笔记(二)proto类与vector,数组的相互转换
一,protobuf定义的类与std::vector的相互转换。①使用protobuf定义结构化的类,这里不做描述,可参考上一篇。②protobuf定义的类 转 std::vector。CanBasicInfo st_can_basicinfo; //实例化protobuf定义的类st_can_basicinfo.set_socdsp(11); //给类中的对象(信号)赋值【只对其中一个举例】int len = st_can_basicinfo.ByteSizeLong();...原创 2021-01-19 14:06:53 · 5040 阅读 · 0 评论 -
Protobuf学习笔记(一)
Protobuf(Protocol Buffer)是谷歌开源的性能优异、跨语言、跨平台的序列化库。一, 发展过程:proto1:2001年,Protobuf首先在Google内部创建,把它称之为proto1,一直以来在Google的内部使用,其中也不断的演化。proto2:Protobuf的开发者重写了Protobuf的实现,保留了proto1的大部分设计。开源的proto2不依赖任何的Google的库,代码也相当的清晰。2008年7月7日,Protobuf被公布出来。Protobuf得到了大.原创 2021-01-15 13:32:58 · 474 阅读 · 0 评论 -
Linux中git安装和使用
一,在Linux中安装git。使用ubuntu,在终端中输入:sudo apt install git -y安装结束后,查看安装版本,输入:git --version创建一个git的空间:在自己想要的路径中:mkdir git_workspacecdgit_workspacegit initgit config --global user.name "Your Name" (自己的用户名)git config --global user.email "you@exa.原创 2020-12-03 09:39:07 · 349 阅读 · 0 评论 -
Linux嵌入式开发笔记(十一)开机自动运行自定义程序
为了实现自己的服务程序可以开机自启,这里采用的是systemd的方式:1,在systemd/system中新建一个 zt_start.service;其内容为.service文件标准格式,实质是为了启动自定义路径下的sh脚本【这里可以直接启动程序,但是为了后续变更方便,这里增加一个适配的sh脚本,这样 zt_start.service就永远不用更新了】。2,systemctl enable zt_start.service 在开机时启动该服务3,在自定义下的路径中新建sh脚本,sh脚本中启动..原创 2020-11-17 11:15:16 · 325 阅读 · 0 评论 -
Linux嵌入式开发笔记(十)ROS2中SharedPtr指针与结构体的相互赋值
定义三种变量类型:①soa_messages::msg::BasicInfo::SharedPtr g_last_BasicInfo_1;②soa_messages::msg::BasicInfo g_last_BasicInfo_2;③auto g_last_BasicInfo_3= soa_messages::msg::BasicInfo();实质上g_last_BasicInfo_2与g_last_BasicInfo_3是一致的,g_last_BasicInfo_1是指针类的。把变原创 2020-11-09 17:34:35 · 847 阅读 · 0 评论 -
Linux嵌入式开发笔记(九)ROS2中调用自定义库(cpp+h)的方法
首先,已经可以根据demo仿写自己的工程,同时也就调用了系统自带的函数,这些函数在demo都有使用,很容易成功;其次,在上一篇中介绍了ROS2中系统API函数原型,这样也就可以调用demo中没有用到的系统中的函数;现在记录一下,ROS2中如何调用自定义cpp文件和h文件的方法。先来干货再举例,在Ubuntu1804中是没有IDE编译器的,所以自定义的cpp文件和h文件需要手动关联起来,同时调用路径也需要手动添加。新建一个include文件夹,在其中新建ZtMathLibrary.cpp和ZtMathLi原创 2020-06-19 18:52:24 · 1410 阅读 · 1 评论 -
Linux嵌入式开发笔记(六)在ROS2中运行小乌龟实例
在ROS2中运行小乌龟,其实主要就是安装两个工具,turtlesim和rqt。A: 安装turtlesim。输入【sudo apt update】输入【sudo apt install ros-dashing-turtlesim】注意:上一条指令中红色标识的dashing是我安装的ROS2的dashing版本,个人需要根据自己安装的版本去修改。输入【ros2 pkg executables turtlesim】如果提示 不识别 ros2,需要如下处理:先输入【. ~/ros2_w原创 2020-05-13 18:58:59 · 1398 阅读 · 1 评论 -
Linux嵌入式开发笔记(五)Ubuntu1804安装ROS2_dashing版本
项目需要变更ROS2的版本,不是太低,是安装官网安装的版本太高了,有一些插件还不支持,所以这里介绍一下Ubuntu1804中安装ROS2-dashing 版本,并且运行小乌龟和倒立摆等实例。安装步骤确保有一个支持UTF-8的locale设置。locale设置例子如下:$ sudo locale-gen en_US en_US.UTF-8$ sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8$ export LANG=en_US.U原创 2020-05-13 18:54:36 · 952 阅读 · 1 评论 -
Linux嵌入式开发笔记(四)Ubuntu1804中安装ROS2,并在ROS2中运行ROS1中乌龟实例
Ubuntu1804中安装ROS2,这个网上有很多资源,我也安装了并运行了demo,可以订阅和发布。但是在ROS2中运行小乌龟的demo却遇到很多问题,有无法安装插件,有不识别指令,花式Bug。最终我找到了解决办法:因为小乌龟是ROS中的,不是ROS2中。所以需要做桥接,但是网上的资源与个人安装的版本和方法不太一样,所以会有各种各样的问题。我这里介绍的方案是官网的一整套介绍,也为以后的查看做记录。安装ROS2,一定要去官网,网上资源有些过时了,ROS2的安装教程:https://index.ro原创 2020-05-11 16:18:42 · 628 阅读 · 1 评论 -
Linux嵌入式开发笔记(三)Ubuntu中新建一个自定义工程
新建工程之前需要安装vim和gcc。输入【sudo apt-get install vim】输入【sudo apt-get install gcc】安装过程中,输入【y】 继续执行安装。新建工程前,需要有两个人性化的设置:设置TAB键为4空格; 设置VIM编译器显示行号;输入【 sudo vi /etc/vim/vimrc 】,在打开的文件最后输入(在文本中无法输入,先...原创 2020-05-07 19:45:26 · 606 阅读 · 0 评论 -
Linux嵌入式开发笔记(二)ubuntu常用命令
第一次打开Ubuntu1804后,右击“打开终端”。页面提示“To run a command as administrator (user “root”),user “sudo <command>” . See “man sudo_root” for details .”如果是管理员权限登入,显示(#);普通用户登入显示($)。打开终端后,默认是安装时注册的用户名登入,...原创 2020-05-05 16:43:20 · 536 阅读 · 0 评论 -
Linux嵌入式开发笔记(一)虚拟机和ubuntu的安装
虚拟机和ubuntu的安装,这里介绍安装免费的VirtualBox虚拟机。下载VirtualBox到本地。百度VirtualBox进入其官网或者链接进入https://www.virtualbox.org/点击Download VirtualBox6.1 进入下载界面。这里下载需要在什么环境下安装的版本,我们一般都是在Windows系统,所以点击下载“Windows host...原创 2020-05-05 15:35:33 · 389 阅读 · 0 评论 -
转载 C语言0长度数组(可变数组/柔性数组)详解
转载 文章,供自己学习,原文链接在文末。1 零长度数组概念众所周知, GNU/GCC 在标准的 C/C++ 基础上做了有实用性的扩展, 零长度数组(Arrays of Length Zero) 就是其中一个知名的扩展.多数情况下, 其应用在变长数组中, 其定义如下struct Packet{ int state; int len; char cData[0...转载 2019-10-16 16:20:44 · 517 阅读 · 0 评论