
c++
文章平均质量分 55
hongge_smile
专注于机器视觉,尤其是3D视觉的学习,欢迎大家一起学习交流。微信:vision2d
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
linux下模拟键盘输入(与pcl点云库结合使用)
有时候我们需要模拟键盘输入,在windows下,有 keybd_event 模拟键盘按下。在linux下可以使用Xlib提供的接口去模拟键盘按下。代码如下:需要链接-lX11 -lXtst.编译指令: g++ main.cpp -o main -lX11 -lXtst.模拟键盘输入可以应用在pcl框选点云中,我们知道pcl款选事件默认是按下键盘"X"才可以款选点云,我们可以模拟键盘按下“X”,这样就可以不用按下"X"了。代码如下:CMakeLists.txt如下:其他应用模拟键盘按下事件结合pc原创 2022-06-21 10:16:07 · 1657 阅读 · 1 评论 -
STL介绍及使用(详细)
STL介绍及使用(详细)1STL介绍1.1 STL的诞生长久以来,软件界一直希望建立一种可重复利用的东西C++的面向对象和泛型编程思想,目的就是复用性的提升大多情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作为了建立数据结构和算法的一套标准,诞生了STL1.2 STL基本概念STL(Standard Template Library,标准模板库)STL 从广义上分为: 容器(container) 算法(algorithm) 迭代器(iterator)原创 2021-07-11 22:31:16 · 2994 阅读 · 3 评论 -
C++ 执行终端命令,并且返回执行命令的结果
有时候,我们需要在C++代码里面执行一些终端命令,然后获取返回值,对返回的结果进行操作,十分的方便。下面给出C++代码:#include <cstdio>#include <iostream>#include <memory>#include <stdexcept>#include <string>#include <array>std::string getLastestGitInfo(const char* c原创 2021-05-12 18:44:55 · 1823 阅读 · 0 评论 -
C++之STL
11原创 2021-03-02 23:00:24 · 271 阅读 · 0 评论 -
c++获取当前进程内存
#include <unistd.h>#include <iostream>#include <string>#include <cstdio>#include <cstring>int parseLine(char *line) { // This assumes that a digit will be found and the line ends in " Kb". int i = strlen(line);原创 2020-12-16 09:40:25 · 3869 阅读 · 2 评论 -
c++条件编译输出日志
//// Created by fuhong on 20-12-10.//#include <iostream>#include <stdio.h>#include <string.h>#define DEBUG#ifdef DEBUG#define filename(x) strrchr(x,'/')?strrchr(x,'/')+1:x#define LOG(frm, args...) {\ printf("\033[0;33m[%s原创 2020-12-10 00:44:23 · 998 阅读 · 0 评论 -
c++序列化
链接:https://blog.youkuaiyun.com/leapmotion/article/details/83687517https://www.cnblogs.com/feixiao5566/p/5189246.html转载 2020-11-23 00:46:23 · 343 阅读 · 0 评论 -
智能指针初始化(pcl库)
智能指针在用的时候一定要初始化,要不然运行的时候会出错(可以正常编译)。下面以pcl库做一个简单的说明。在函数里面进行初始化:pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_source (new pcl::PointCloud<pcl::PointXYZ>)在类里面初始化:类内部初始化的时候,不可以跟上面那样使用new关键字进行初始化,可以使用智能指针的reset方法在构造函数里面进行初始化:input_cloud.reset(new原创 2020-07-14 18:50:29 · 4506 阅读 · 4 评论 -
c++动态库和静态库的生成和调用(linux系统)
简单介绍下linux下c++动态库和静态库的生成和调用。linux下的静态库是以.a结尾,类似于windows下的.lib文件,动态库以.so结尾,类似于windows下的.dll文件。动态库文件和静态库文件的优缺点:.a文件 :静态库文件,静态库在编译时已经被链接到目标代码中,运行程序不依赖该静态库文件;优点:将程序使用的函数的机器码复制到最终的可执行文件中,提高了运行速度;如果库函数改变,整个程序需要重新编译缺点:所有需用到静态库的程序都会被添加静态库的那部分内容,使得可执行代码量相对变多,占原创 2020-07-09 00:25:42 · 1258 阅读 · 0 评论 -
c++获取当前文件夹路径
方法1:#include <unistd.h>#include <direct.h>#include <string> int _tmain(int argc, _TCHAR* argv[]){ char buff[FILENAME_MAX]; getcwd( buff, FILENAME_MAX ); std::string current_working_dir(buff); std::cout << current原创 2020-06-15 11:09:48 · 3135 阅读 · 0 评论 -
windows下创建多级目录(C++)
下面是C++在windows下创建多级目录的代码:#include <iostream>#include <string>#include <imagehlp.h>using namespace std;bool createDirs(std::string &path) { char last_char; last_char = pa...原创 2020-02-17 22:04:18 · 1923 阅读 · 0 评论 -
c++之QT
Qt入门(C++)1.Qt的优势:1.跨平台,几乎支持所有的平台2.接口简单,容易上手,学习QT框架对学习其他框架有参考意义3.一定程度上简化了内存回收机制 (特定场景下会帮助释放内存)4.开发效率高,能够快速的构建应用程序。5.可以进行嵌入式开发2.展示一个窗口#include <iostream>#include <QApplication>#inc...原创 2020-02-10 14:23:21 · 13365 阅读 · 0 评论 -
c++之lambda 表达式
6. lambda 表达式也叫做 lambda 函数 , lambda 表达式的出现目的是为了提高编码效率,但是它的语法却显得有点复杂。lambda表达式表示一个可以执行的代码单元,可以理解为一个未命名的内联函数。1. lambda表达式的语法在编写lambda表达式的时候,可以忽略参数列表和返回值类型,但是前后的捕获列表和函数体必须包含 , 捕获列表的中括号不能省略,编译根据它来识...原创 2020-02-10 14:19:20 · 579 阅读 · 0 评论 -
c++之运算符重载
一、 运算符重载1. 什么是运算符重载重载这个概念在早前的函数重载,大家已经见识过了。函数可以重载, 运算符也是可以重载。 运算符重载就是对已有的运算符重新进行定义,赋予其另一种功能,以达到适应不同的数据类型。运算符重载不能改变它本来的寓意(也就是 加法不能变更为 减法)运算符重载只是一种 “语法上的方便” , 它只是一种函数调用的方式。int a = 3 ;int b = 4 ; ...原创 2020-02-10 14:17:53 · 457 阅读 · 0 评论 -
make及cmake使用简介
四、make什么是makemake,常指一条计算机指令 ,可以从一个名为Makefile的文件中获得如何构建你所写程序的依赖关系。通常项目的编译规则就定义在makrfile 里面,比如: 规定先编译哪些文件,后编译哪些文件… 当编写一个程序时,可以为它编写一个makefile文件,不过在windows下的很多IDE 工具,内部都集成了这些编译的工作,只需要点击某一个按钮,一切就完成了。换...原创 2020-02-10 14:15:44 · 678 阅读 · 0 评论 -
c++之多线程
三、 多线程1. 创建线程要想使用线程,需要导入头文件#include<thread>#include <thread>void show(){ for(int i = 0 ; i < 10 ;i ++){ cout <<__func__ << " = " << i << end...原创 2020-02-10 14:13:20 · 674 阅读 · 0 评论 -
c++之容器详解
5. 类模板编程有时候继承、包含并不能满足重用代码的需要,这一般在容器类里面体现的尤为突出。例如: 我们定义了一个容器类,Container, 这个Container类可以实现类似verctor一样的工作,能保存数据,能修改数据,并且数据的类型不限制,但是针对数据的操作都是一样的。那么类模板编程就成了不二之选了。1. 定义模板类这里以栈作为参照对象,定义一个模板类,实现栈一样的功能。...原创 2020-02-10 14:10:23 · 2319 阅读 · 0 评论 -
c++之模板编程
模板编程,容器,多线程一、模板编程1.模板编程的必要性在c++中,变量的声明必须指出它的类型,提高了编译运行效率,但是在某些场合下就有点缺陷。比如:需要定义计算两个数之和的函数,由于未来计算的数值有可能是整数、也有可能是浮点数,所以需要为这些类型准备对应的函数,但是这些函数的内部逻辑都是一样的,他们的唯一区别就是所接收的数据类型不同而已。那么有没有一种情况使得编码的时候暂时的忽略掉类型这个...原创 2020-02-10 14:06:37 · 959 阅读 · 0 评论 -
c++之文件IO
四、 I/O 操作1. 基本输入输出在针对I/O操作时,标准库提供一组操作符(manipulator),允许程序堆输出的内容进行格式化,比如:输出数字的十六进制、浮点值的精度等。类似以前的 endl 就是一个操作符,但它并不是一个普通的值,是用于输出一个换行符并且兼具刷新缓冲区的功能。输出布尔数据在c/c++中,在对bool类型的数据做输出的时候,打印的是 0 、1 ,如果希望看...原创 2020-02-10 14:05:15 · 474 阅读 · 0 评论 -
c++之智能指针,异常处理,枚举
智能指针,文件IO二、智能指针&动态内存1. 指针潜在问题c++ 把内存的控制权对程序员开放,让程序显式的控制内存,这样能够快速的定位到占用的内存,完成释放的工作。但是此举经常会引发一些问题,比如忘记释放内存。由于内存没有得到及时的回收、重复利用,所以在一些c++程序中,常会遇到程序突然退出、占用内存越来越多,最后不得不选择重启来恢复。造成这些现象的原因可以归纳为下面几种情况:...原创 2020-02-10 14:03:26 · 835 阅读 · 0 评论 -
c++之指针,对象,构造
指针,对象,构造1. 类和对象1. 类类是构成对象的一个蓝图可以拥于属性(用于表示数据)可以拥有方法可以隐藏数据和方法可以对外提供公开的接口class Student{ string name; // 姓名 int age; //年龄};//实际上前面大家见过的Vector 和 string 都是类2. 对象类提供了对象的蓝图,所以基...原创 2020-02-10 13:56:42 · 712 阅读 · 0 评论 -
c++基础
C++基础一、课程介绍1. c++介绍C++ 由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的,由于C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言 ,所以最初命名为带类的C 。C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。C++ 也是目前嵌入式 ( 无人驾驶 ) 的首选语言。2. python ...原创 2020-02-10 13:54:40 · 878 阅读 · 0 评论 -
C++ 把引用作为返回值
C++ 把引用作为返回值C++ 引用 C++ 引用通过使用引用来替代指针,会使 C++ 程序更容易阅读和维护。C++ 函数可以返回一个引用,方式与返回一个指针类似。当函数返回一个引用时,则返回一个指向返回值的隐式指针。这样,函数就可以放在赋值语句的左边。例如,请看下面这个简单的程序:实例#include <iostream> using namespace std; ...原创 2020-01-25 23:41:23 · 483 阅读 · 0 评论 -
C++之lambda表达式
Lambda 函数与表达式C++11 提供了对匿名函数的支持,称为 Lambda 函数(也叫 Lambda 表达式)。Lambda 表达式把函数看作对象。Lambda 表达式可以像对象一样使用,比如可以将它们赋给变量和作为参数传递,还可以像函数一样对其求值。Lambda 表达式本质上与函数声明非常类似。Lambda 表达式具体形式如下:[capture](parameters)->r...原创 2020-01-25 21:51:45 · 315 阅读 · 0 评论 -
c++ 关键字auto,register,static,extern,mutable,thread_local
C++ 存储类存储类定义 C++ 程序中变量/函数的范围(可见性)和生命周期。这些说明符放置在它们所修饰的类型之前。下面列出 C++ 程序中可用的存储类:autoregisterstaticexternmutablethread_local (C++11)从 C++ 17 开始,auto 关键字不再是 C++ 存储类说明符,且 register 关键字被弃用。auto 存储类自...原创 2020-01-25 21:03:57 · 475 阅读 · 0 评论 -
C++获取当前时间
以下方式获取的时间比北京时间晚了八小时:time_t t = time(nullptr);struct tm *p;p = gmtime(&t);char s[50];strftime(s, sizeof(s), "%Y-%m-%d-%H:%M:%S", p);string current_time = s;photo_data_ = current_time.substr(...原创 2020-01-11 11:16:05 · 540 阅读 · 0 评论 -
linux C++创建文件夹
https://www.jianshu.com/p/06a0da1f6389https://blog.youkuaiyun.com/rathome/article/details/78870694添加链接描述转载 2020-01-10 19:47:30 · 8464 阅读 · 0 评论 -
Eigen: C++开源矩阵计算工具——Eigen的简单用法
Eigen: C++开源矩阵计算工具——Eigen的简单用法https://blog.youkuaiyun.com/augusdi/article/details/12907341转载 2020-01-09 16:45:25 · 325 阅读 · 0 评论 -
c++读取文本,将数字存到Eigen::MatrixXf中
Eigen::MatrixXf getTemplatePoints(const std::string template_points_dir) { Eigen::MatrixXf points(4, 10); ifstream fin(template_points_dir); string line_info, input_result;// char *lin...原创 2020-01-09 15:09:35 · 2555 阅读 · 0 评论 -
c++ string 和其他数据类型的相互转换
http://blog.sina.com.cn/s/blog_8d30e9830102wqda.html转载 2020-01-09 14:39:49 · 388 阅读 · 0 评论 -
C++关键字static的用法
转载:https://www.cnblogs.com/songdanzju/p/7422380.html四个作用:1.先来介绍它的第一条也是最重要的一条:隐藏。(static函数,static变量均可)当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。2.static的第二个作用是保持变量内容的持久。(static变量中的记忆功能和全局生存期)存储在静态数据...转载 2020-01-06 23:41:40 · 284 阅读 · 0 评论 -
c++时间戳
https://blog.youkuaiyun.com/qq_27563511/article/details/80028518转载 2020-01-06 11:49:10 · 1589 阅读 · 0 评论