
C++
文章平均质量分 61
语法,类库等
前面是不断后退的路
这个作者很懒,什么都没留下…
展开
-
C++将字符串转为整形,忽略其中的分割符
函数将字符串转整型,忽略其中的 split 字符。原创 2022-09-06 14:22:11 · 414 阅读 · 0 评论 -
日志记录工具 C++ linux
介绍使用logfile.h 和 logfile.cpp 两个文件实现功能.class类定义#include<ros/ros.h>#include<fstream>#include<sys/types.h>#include<sys/stat.h>//引入系统库,使用该库中的方法创建文件夹#include<iostream>#include<dirent.h>//文件夹处理相关函数库#include<string&原创 2022-04-25 13:52:55 · 2278 阅读 · 0 评论 -
ros功能包中添加功能包或者添加库文件时CMakeLists.txt文件的编辑
1.在package1中导入package2(package2中包含头文件headfile.h),使得package1中的main1.cpp能够引入使用headfile.h。2.让package1中的main1.cpp使用库文件(两个文件cJSON.h cJSON.c)。原创 2022-04-01 18:55:40 · 2270 阅读 · 2 评论 -
使用C++ 实现TCP server
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言1.头文件2.main函数3.相关函数3.1 subcallback3.2 server与client的交互函数3.3 循环向所有连接发送信息的函数总结前言工作内容:为每个连接建立线程进行交互,并单独使用一个线程向所有连接持续发送相同数据.主线程执行等待连接. 本实现在ros下,使用C++语言和如下头文件所示的相关库.1.头文件#include <arpa/inet.h> #include &l.原创 2022-03-29 10:05:17 · 6322 阅读 · 8 评论 -
ros C++ msg功能包
这里写自定义目录标题创建功能包创建message编辑package.xml编辑CMakeList.txt参考文章:创建功能包cd catkin_ws/srccatkin_create_pkg my_msg_package std_msgs message_generation创建message在功能包下创建文件夹my.msg,在该文件夹下创建.msg文件并编辑。int32 data1string data2编辑package.xml在该文件中std_msgs和message_runti原创 2022-03-16 15:07:41 · 1570 阅读 · 0 评论 -
C++中多线程的创建方式总结
文章目录使用函数作为参数创建线程函数无参函数有参使子线程结果影响主线程unique_ptr和ref()使用类作为线程对象的参数用lambda表达式定义线程使用函数作为参数创建线程函数无参使用一个无参函数创建线程,thread 的构造接受一个参数,即函数名。//编写一个函数作为线程的执行路径void myprint() { cout << "我的线程开始运行" << endl; cout << "我的线程开始运行" << endl; cout原创 2021-05-21 16:31:03 · 1047 阅读 · 8 评论 -
关于智能指针的一些使用 auto_ptr shared_ptr unique_ptr
文章目录前言auto_ptrunique_ptrshared_ptr前言1.智能指针ps有一个析构函数, 该析构函数将在ps过期时释放它指向的内存。2.使用智能指针需要包含的库#include<memory>3.智能指针使用泛型,所以应该用泛型定义方式。//创建智能指针时必须提供额外的信息,指针可以指向的类型: shared_ptr<string> p; shared_ptr<vector<int>> a; /*最安全的分配和使用动态内存的方原创 2021-05-20 00:48:12 · 177 阅读 · 0 评论 -
C++内存分配机制详解(附代码)
文章目录内存分配的过程:分配内存释放内存内存管理实例1实例2实例3内存分配的过程:分配内存1.new() new是用于创建对象的函数,它通过调用operator new()来完成空间的分配,通过parameter new将对象在已分配的空间中创建。2.operator new() 全局函数,它返回一个void*型的指针,该指针指向分配到的内存,operator new()通过调用malloc获得内存。3.parameter new 它的使用方式为new(pointer)className(par原创 2021-05-13 22:03:35 · 1211 阅读 · 4 评论 -
可扩容的线性表的C++实现
文章目录头文件:线性表的定义和包含的成员函数部分函数实现逻辑扩容ListExpansion(int )缩容ListShrinkage()有参构造函数CreateList(ElemType, int)初始化函数InitList( )获取某个元素第一次出现的位置LocateElem(ElemType)插入一个元素ListInsert(int , ElemType )删除一个元素ListDelete(int, ElemType&)批量添加ListInsertAll(int, ElemType*,int )原创 2021-05-12 18:39:59 · 736 阅读 · 0 评论 -
C++实现二叉树结构及其二叉树常用算法
文章目录头文件成员函数构造函数创建二叉树CreateBTNode输出二叉树DispBTree查找指定节点FindNode查找左、右孩子节点求树高BTreeHeight递归遍历非递归遍历前序遍历头文件使用node 定义节点,并重命名为BTNode。二叉树类 BTree中含有一个成员BTNode* head;存放二叉树的头节点。typedef int ElemType;const int MaxSize = 20;//二叉树链式存储结构typedef struct node { ElemT原创 2021-05-09 20:06:32 · 3859 阅读 · 0 评论 -
数据结构教程—二叉树相关操作C++实现
介绍:代码使用如下二叉树作为样例,其括号表示法表示为:A(B(D(,G)),C(E,F)).前序遍历结果:A B D G C E F中序遍历结果:D G B A E C F后序遍历结果:G D B E F C A头文件及类定义://创建一个辅助的node类以及BinaryTree类中多数函数使用BTNode *p的参数是为了实现递归,而同时简化结构#include<iostream>#include<stack>constexpr auto MaxSize =原创 2020-06-09 16:19:27 · 853 阅读 · 0 评论 -
数据结构教程—稀疏数组的三元表示及常用相关函数C++类实现
头文件即类定义:#include <iostream>#define MaxSize 20using namespace std;class Triple {private: int row;//保存原矩阵行数 int col;//保存原矩阵列数 int nums; int data[MaxSize][3];//public: void CreatMat(int a[6][7], int M, int N);//以a矩阵创建三元组原创 2020-06-06 15:54:03 · 381 阅读 · 0 评论 -
数据结构教程—串的顺序存储结构C++类实现
类定义:#include<iostream>constexpr auto MaxSize = 50;using namespace std;class SqString {private: char data[MaxSize];//存放串字符,这里假设分配的空间足够使用,即实现中不考虑空间不足的情况 int length;//存放串长 public: SqString(); void StrAssign(char str[]);//将字符串常量赋值给串 void原创 2020-06-05 11:36:20 · 1004 阅读 · 0 评论 -
数据结构教程—队列的链式存储结构C++模板类实现
类定义:#include<iostream>using namespace std;//节点类template<class T>class Node {public: T data; Node* next;};template<class T>class Queue {private: Node<T>* front; Node<T>* rear;public: Queue(); ~Queue(); boo原创 2020-06-04 16:43:00 · 309 阅读 · 0 评论 -
数据结构教程—循环队列顺序存储结构C++模板类实现
类定义:#include<iostream>#define MaxSize 4using namespace std;template<class ElemType>class Queue{private: ElemType *data; int front, rear;//front队头指针 rear队尾指针public: Queue();//无参构造 ~Queue(); bool QueueEmpty();//对空 bool QueueFull();原创 2020-06-04 10:04:47 · 300 阅读 · 0 评论 -
C++用栈实现构造迷宫及寻找一条路径
头文件和常量定义:#include <graphics.h>#include<iostream>#include<stack>#include<vector>#include <stdlib.h>//包含随机数#define Row 20#define Col 20#define MaxSize 3using namespace std;定义一个类用于存放所走过的路径:class Box{public: int i原创 2020-06-03 17:56:38 · 648 阅读 · 0 评论 -
数据结构教程—栈的链式存储结构C++类实现
类定义(标头.h):#pragma once#include<iostream>using namespace std;//结点类template<class ElemType>class Node {public: ElemType data; Node* next;};//栈template<class ElemType>class Stack { Node<ElemType>* Head;public: Stack();原创 2020-06-02 12:56:26 · 241 阅读 · 0 评论 -
数据结构教程线性表 ——单链表C++类实现
类定义(标头.h):#pragma once#include<iostream>using namespace std;template<class ElemType>class Node {public: ElemType data; Node* next;};template<class ElemType>class LinkList {private: Node<ElemType>* L;public: LinkList(原创 2020-06-01 10:31:21 · 267 阅读 · 0 评论 -
数据结构教程线性表 ——顺序表C++类实现
类定义:#include<iostream>using namespace std;constexpr auto MaxSize = 50;template<class ElemType >class SqList{private: ElemType data[MaxSize] = { 0 }; int length=0;public: SqList();//1.无参构造 SqList(ElemType a[],int n);//2.有参构造 bool原创 2020-05-31 18:37:59 · 269 阅读 · 0 评论