
C++
文章平均质量分 54
总结C++中遇到的一些编程技巧及问题
点云实验室lab
从事多源激光点云数据智能处理、图像处理与应用(目标检测、识别),深度学习以及数学相关推理与应用。
展开
-
c++中vector的使用:指定位置、指定元素值删除操作
是C++标准库中的一个动态数组,它能够自动管理内存,非常适用于需要频繁添加和删除元素的场景。在本文中,我们将探讨如何在中删除指定位置的元素和指定元素值的元素。原创 2024-12-05 12:24:19 · 1032 阅读 · 0 评论 -
C++之多态使用小结
介绍总结了c++中多态使用原创 2024-07-13 18:27:45 · 939 阅读 · 0 评论 -
algorithm中常见算法
结合点云数据处理,介绍了algorithm库中常见用法原创 2024-06-26 11:09:14 · 484 阅读 · 0 评论 -
C++之结构体初始化使用总结
总结介绍了struct的几种典型初始化方法原创 2024-06-12 15:40:10 · 1186 阅读 · 0 评论 -
C++之pair总结及其在点云数据存储中举例
总结介绍了pair用法,并结合点云介绍其用法原创 2024-06-10 11:05:24 · 365 阅读 · 0 评论 -
C++中static关键字用法总结
总结了c++中关键词static的修饰变量、函数,及其用法原创 2024-06-03 19:42:58 · 971 阅读 · 0 评论 -
C++之构造函数总结
总结了C++中构造函数用法,并结合代码进行解释原创 2024-05-30 09:41:45 · 324 阅读 · 0 评论 -
c++之this指针在类中用法
介绍c++中this指针使用,并进行举例原创 2024-05-30 09:33:50 · 402 阅读 · 0 评论 -
C++之类的三种继承修饰符(public、private、protected)总结
介绍public、private、protected在类继承中的权限限制原创 2024-05-29 10:35:18 · 1556 阅读 · 0 评论 -
C++之类(class)的三种成员修饰符(public、private、protected)总结
主要介绍类中修饰词public、private、protected控制成员访问权限原创 2024-05-29 08:55:44 · 1960 阅读 · 0 评论 -
文件路径中‘/’与‘\’用法详解,与等效使用方法介绍
文件路径设置方法介绍原创 2024-03-20 18:05:09 · 2063 阅读 · 0 评论 -
vs+qt 给打包程序添加图标
运行后软件的左上角会有图标。原创 2023-06-25 21:30:20 · 2074 阅读 · 1 评论 -
EasyX环境配置及可视化
easyx环境配置原创 2023-01-17 10:27:37 · 499 阅读 · 0 评论 -
C++栈的用法
C++中stack的用法原创 2023-01-04 21:51:09 · 2127 阅读 · 0 评论 -
C/C++中++i与i++区别
i++与++i的用法原创 2022-09-06 11:18:45 · 8141 阅读 · 0 评论 -
Armadillo(9.800.2)矩阵运算库的安装(window 10 C++)
矩阵运算库Armadillo的环境配置原创 2022-07-17 09:38:51 · 1263 阅读 · 0 评论 -
C++中vector中删除/添加指定位置处的元素
C++中容器类vector的元素添加与删除操作原创 2022-07-14 22:08:31 · 9319 阅读 · 0 评论 -
PolyFit软件介绍
基于点云数据的三维重建,效果理想原创 2022-07-03 10:56:10 · 1227 阅读 · 5 评论 -
不同维度、元素的容器vector初始化自定义(C++)
1、引言C++中容器vector非常常见,有时候需要事先定义其容器的长度,其中包括一维、二维容器长度的定义,其中二维容器定义可以用于存储二维数组,用于点云数据组织,分块处理等,下面分别介绍一维与二维容器的初始化。2、代码示例:2.1 一维容器(vector<>)直接使用resize()函数进行初始化#include<iostream>#include<vector>using namespace std;void main(){ vecto原创 2022-03-30 21:08:38 · 1675 阅读 · 0 评论 -
vs怎么把if语句块for语句块折叠
中文版:【工具】->【选项】->【文本编辑器】->【C/C++】->【查看】->【大纲显示】->【大纲语句块】=Truevs2013:TOOLS->Options->TextEditor->C/C++/View->Outlining >OutlineStatementBlocks=True...原创 2022-01-07 11:17:32 · 726 阅读 · 0 评论 -
C++ 日常编程错误(二) 反三角数值求解 以及直线间夹角
C++中反三角函数取值范围:asin的取值范围是[-pi/2,pi/2]acos的取值范围是[0,pi]atan的取值范围是[-pi/2,pi/2]因此根据给定的值即可得到角度。但是由于小数在运算时,会出现一定偏差,有可能出现>=1.0或者<=1.0的情况。此时返回的角度为无效数值,但此时程序仍是正常运行,不会报错。但是会影响最终的结果。因此需要添加 两种情况。如下是计算任意平面两条直线之间的夹角计算代码,特意加上上述两种情况,防止出现错误。double Angle_Two原创 2021-06-29 10:31:19 · 2126 阅读 · 0 评论 -
C++ 日常编程错误小结(一)
(1)2021.06.28生成矢量:始终出现一条直线的情况,发现错误为设置矢量点的x、y坐标函数写成一致。原创 2021-06-28 09:52:51 · 127 阅读 · 0 评论 -
NSiS打包详细步骤教程
打开NSiS软件,其在window下的图标如下所示:原创 2021-05-27 22:35:22 · 9776 阅读 · 0 评论 -
C++ 读取最后一行为空的m行n列的txt文本数据
文本的数据存储格式为m行n列,数据之间的间隔为空格 txt文本最后一行为空vector<vector<double>> GLAS::Readmntxt(char *inputpath){ vector<vector<double>> result; ifstream infile(inputpath, ios::in); while (!infile.eof()) { string str; double temp; getlin.原创 2021-05-13 15:42:57 · 349 阅读 · 0 评论 -
VS中无法加载工程
在实际VS编写的程序中,比如添加的某个属性表,如PCL中的PCLDebug.props,方便配置。但这样存在一个问题,当存放这个属性的文件路径发生了变化,则程序会无法加载。这种情况非常常见,如程序拷贝到他人电脑上,或者重新安装系统后,都会出现上述问题。下面给出一种解决方法进行解决。以配置PCL环境为例,我采用的是以PCLDebug.props、PCLRelease.props属性表来配置的环境,相信很多小伙伴也采用这种方法配置环境。如目前将props文件放置在如下图的文件路径下,然后再将该文件放原创 2021-04-23 16:46:10 · 1019 阅读 · 0 评论 -
C++中char*与string互转
string与char*的转换,在c++中比较常见,两者相互转换如下:(1)char*转string通过stringstream作为中间进行传递#include<iostream>using namespace std;void main(){ char *p = "123"; string str; stringstream ss; ss << p; ss >> str; cout << str << endl;原创 2021-02-10 12:36:24 · 11025 阅读 · 0 评论 -
容器的头部与尾部元素的插入(C++)
在对数据进行排序时,对于任意选取的某一元素,大于该元素的在其前面,小于该元素的则在其后面。常用的vector容器没有这个功能。C++中deque可以对容器进行双向操作,示例如下:(1)非结构体的操作:#include<deque>#include<iostream>using namespace std;void main(){ deque<double> arr; arr.push_front(1); arr.push_front(2); ar原创 2020-12-22 17:14:01 · 4586 阅读 · 0 评论 -
不重复随机数的产生 (C++)
有时候算法对产生的随机数有一定的要求,如产生的随机数不重复。当采集的范围比较大时,如[1,1000]之间取3个数,则使用rand()函数,产生的数字基本不存在重复。但是若在[1,5]之间产生3个随机数,则是由非常大的概率会产生随机数的。这时可常用如下代码产生不重复的随机数字#include< iostream> #include< stdio.h> #include< stdlib.h> #include< time.h> #include<原创 2020-12-13 22:16:56 · 14456 阅读 · 2 评论 -
马氏距离介绍及代码实现(C++)
介绍马氏距离是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示数据的协方差距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧氏距离不同的是它考虑到各种特性之间的联系(例如:一条关于身高的信息会带来一条关于体重的信息,因为两者是有关联的)并且是尺度无关的(scale-invariant),即独立于测量尺度,广泛用于分类和聚类分析。相关概念方差:方差是标准差的平方,而标准差的意义是数据集中各个点到均值点距离的平均值。反应的是数据的离散程度。协方差:标准差与方差原创 2020-11-23 13:12:35 · 3104 阅读 · 0 评论 -
C++中结构体初始化的使用
另外构建结构体时,有时为方便直接通过括号的方式进行,这样可以节省时间。如下所示:#include<iostream>#include<vector>using namespace std;struct mypoint{ mypoint(double a, double b, double c) { this->x = a; this->y = b; this->z = c; } double x; double y; doubl原创 2020-10-31 12:55:58 · 791 阅读 · 0 评论 -
C++之引用“&”小结
最近在阅读别人代码,发现关于&的一个新用法,记录下:在函数中,若变量前添加&表明为引用,条用后该变量值发生变化。后续循环调用中仍是变化,如下所示的一个例子:#include<iostream>#include<vector>using namespace std;void vec(vector<double> &a){ a.push_back(1);}void main(){ vector<double>原创 2020-10-28 21:33:03 · 145 阅读 · 0 评论 -
C++之统计程序耗时
#include<iostream>#include<time.h>using namespace std;void main(){ clock_t start, finish; start = clock(); int sum = 0; for (int i = 0; i < 100000000; i++) { sum = sum + i; } finish = clock(); cout << "time consuming:...原创 2020-10-16 21:27:45 · 1125 阅读 · 0 评论 -
C++中动态与静态数组用法
在使用c++进行数据处理时,常常会涉及到数组的使用,数组可以分为静态数组与动态数组,其中静态数组长度已被限制,往往无法满足实际需要。现在主要对动态数组的使用,以及返回动态数组的函数的使用进行小结。1、静态数组的声明如声明长度为10的整数一维数组int array[10];其他类型的一维数组声明类似,不再进行详述。注: int array[变量] 程序报错:变量必须是个常量2、动态数组的声明及使用原理:动态数组是通过云算符new进行创建,而数组变量实际上是个指针,因此利用new符号创建的数组,可以当..原创 2020-10-07 22:00:41 · 3123 阅读 · 0 评论 -
C++之容器的快速初始化
最近阅读了别人的代码,写的挺规范但是有些语法没见过,与自己的编写风格差别有点大,小结下:(1)vector的初始化vector<double> arr(a,b)a为维度,b为初始值#include<opencv2\opencv.hpp>#include<vector>#include<iostream>using namespace std;using namespace cv;int main(){ vector<.原创 2020-09-23 12:31:30 · 1275 阅读 · 0 评论 -
C++ Release下进行调试
VS release模式下进行调试设置工程项目上右键 打开属性界面1.c++---常规----调试信息格式选 程序数据库(/Zi)或(/ZI), 注意:如果是库的话,只能(Zi)2.c/c++----优化----优化 配置 选禁止(/Od)3.连接器 ---调试 ----生成调试信息 选是 (/DEBUG)...原创 2020-09-13 11:15:05 · 1100 阅读 · 0 评论 -
C++编程错误小结
在使用C++编写一个函数时,出现了一个常见的错误,错误如下:void function(double ** a, &vector<double> b){ ... ... //多此一举先预定义一个二维指针,其维度与a相似 double **c=new double *[10]; for (int i=0;i<10;i++)...原创 2020-04-14 11:12:47 · 233 阅读 · 0 评论 -
C++中push_back与pop_back的用法
push_back与pop_back均为容器vector操作函数,但其用法各不相同,区别较小,但有时会混淆。如果对操作的容器vector在变化(如Arr在程序中一直处于变化状态),那么无法使用常规的取固定位置的值,此时需要用到back()与pop_back()函数。#include<iostream>#include<vector>using namespac...原创 2020-03-13 22:25:56 · 27550 阅读 · 1 评论 -
C++中break与continue的用法
根据break的用法,是在循环体内,强行结束循环的执行,也就是结束整个循环的过程,不再执行循环的条件是否成立,直接转向循环语句下面的语句。其包括两点:1.break结束一个循环体,即一个for循环。倘若break镶嵌在内循环中,则只结束内部循环体2. 在执行break后,循环体内其他条件不在执行下面为单循环与内嵌循环的示例:(1)单循环#include<iostr...原创 2019-01-26 13:12:47 · 19429 阅读 · 2 评论 -
C++读取特定路径下文件、文件夹、特定文件类型、创建文件
在C++中对文件的操作,常见的有在指定路径中创建文件夹、获取所有文件夹名称、搜索全部文件、搜索特定类型的文件,先对该操作做以总结,便于以后查询使用。代码如下:#include<Shlwapi.h>#include<iostream>#include<string>#include<vector>#include<io.h>...原创 2018-11-20 22:50:18 · 6445 阅读 · 0 评论 -
c++中调用已编写好的exe
使用visual studio编写生成的exe想在别人电脑上运行,首先得配置好环境,或者是在已有的程序中添加好第三方库。配置第三方库在这里不做介绍,先说明下如何在自己程序下,即相对路径下配置好Eigen3(矩阵运算库)。相对路径配置环境Eigen3首先将Eigen3拷贝到程序所在路径,接着在程序属性页面中设置相对路径,如下图所示。按照如下图所示设置后,即可设置完相对路径Eigen3的环境配...原创 2018-11-15 23:12:23 · 1068 阅读 · 0 评论