
C++
JustNow_Man
计算机,努力学习中·ye
展开
-
【刷题】OJ输入输出练习
输入输出练习对于有不定行输入的情况,使用while输入;对于指定行数的情况,使用for输入;对于需要分行的情况,使用getchar() != '\n'进行分行;对于分割字符串的情况,使用include <sstream>string line, item; stringstream ss(line); while(getline(ss, item, ',') { vecstr.push_back(item); }...原创 2021-11-20 10:02:18 · 319 阅读 · 0 评论 -
【Daily Practice】316. 去除重复字母
leetcode 316题理解思路,暂不能保证AC;class Solution {public: string removeDuplicateLetters(string s) { stack<char> st; int *countArr = new int[256]{0}; for (int i = 0; i < s.size(); i++) { countArr[s[i]]++;原创 2021-08-07 10:01:59 · 104 阅读 · 0 评论 -
【C++】自实现split函数
C++11之前只能自实现split函数,C++ 的 string 为什么不提供 split 函数?原创 2021-06-29 20:19:46 · 135 阅读 · 0 评论 -
【Qt】日志库Log4Qt环境配置
Log4Qt地址打开Pro文件,编译得到lib库和dll在新建工程中应用第三方库原创 2021-06-17 00:08:38 · 192 阅读 · 0 评论 -
【C++】string和int类型相互转换
string转intint stringToInteger(string& str) { int temp = 0; for (int i = 0; i < str.size(); i++) { temp = temp * 10 + (str[i] - '0'); } return temp;}int转stringint a = 3;string str = std::to_string(a);原创 2021-05-08 00:07:15 · 123 阅读 · 0 评论 -
【C++】编译报错
从C++11以后,语言的新特性增加得越来越多,在实际使用过程中这些特性容易将错误提前在编译器暴露出来,记录一下C++程序编译过程中,出现的那些错误:无法从"const _Ty2"转换为"value_type&"使用了const_iterator,并且需要修改值;将迭代器const_iterator修改为iterator即可;std::pair<key_type, value_type> std::make_pair<key_type, value_type>(_原创 2021-04-05 22:49:49 · 806 阅读 · 0 评论 -
【C++】unordered_map中的operatr[]
Returns a reference to the value that is mapped to a key equivalent to key, performing an insertion if such key does not already exist.unordered_map中operator[]运算符返回的是value值的引用,方便进行赋值操作。原创 2021-04-05 15:36:31 · 169 阅读 · 0 评论 -
【C++】实现LRU(LinkedHashMap)
思想基本思想是借助hash_map实现链表的快速查找,同时快速添加删除子节点。C++实现class LRUCache {public: LRUCache(int capacity) : cap(capacity) { } int get(int key) { if (map.find(key) == map.end()) return -1; auto key_value = *map[key]; cache.erase(m原创 2021-04-03 22:01:29 · 771 阅读 · 0 评论 -
【C++】auto使用、decltype使用
auto关键字auto为对变量类型推导的关键字 // auto可用于迭代器类型推导,还包括 auto i = 5; // 推导i为int类型 auto arr = new aotu5(); // arr被推导为int* // auto不能用于函数传参数 // auto不能用于推导数组类型auto还可以用于函数返回值类型推导delctypedelctype可以对表达式进行类型推导,用法和typeof类似;...原创 2021-03-24 08:10:34 · 155 阅读 · 0 评论 -
[c++]constexpr使用
c++中的常量表达式:‘1+2、3*4’;constexpr修饰变量即为常量表达式,可用于数组定义阶段的长度;constexpr修饰函数返回值,表示函数返回常量表达式;原创 2021-03-20 13:13:21 · 240 阅读 · 0 评论 -
C/C++中类型转换
1.类型转换原理小数据赋给大变量不会造成数据丢失,系统为了保证数据的完整性,还提供了符号扩充行为。大数据赋给小变量会发生Truncate(截断行为),可能造成数据丢失。2.隐式转换2.1.整型提升在32位机中,所有低于32位的整形数据,在运算过程中先要转换位32位的整型数据,然后才参与运算。2.2.混合提升First,if eigher operand is long double, the other is converted to long double;Otherwise, if原创 2021-02-09 12:26:07 · 193 阅读 · 0 评论 -
MVC面向对象编程
#mermaid-svg-a9GpEInhktOVZG4O .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-a9GpEInhktOVZG4O .label text{fill:#333}#mermaid-svg-a9GpEInhktOVZG4O .node rect,#mermaid-svg-a9GpEInhkt原创 2021-01-03 22:59:04 · 244 阅读 · 0 评论 -
googletest测试环境的简单搭建
TEST宏两个参数的名字分别为:测试套的名字、测试的名字;VS 2019中新建Googletest只可以库进行测试,具体实际操作可以看第一个链接;0.VS2019对lib的测试:在VS2019中使用Google Test1.环境安装:googleTest安装和使用2.环境的安装:Google Test入门教程:从下载到运行...原创 2020-12-21 13:30:20 · 438 阅读 · 0 评论 -
C++ STL中string::substr(size_type __pos, size_type __n)解析
string::substr(pos, n)表示截取字符串string,从pos下标开始,长度为n的子串。比如:str = “helloworld”,那么str.substr(2, 3)等于“llo”。1分析substr()源码==substr()==源码如下: basic_string substr(size_type __pos = 0, size_type __n = npos) const { if (__pos > size()) _M_throw_out_of_原创 2020-09-06 16:36:50 · 865 阅读 · 0 评论 -
CloudCompare中常见数据结构
ccccHObject::Container //CCLib::Neighbourhood //CCLib::SquareMatrixd //常见点云类型及作用:ccGenericPointCloud // 包含RGB颜色、法线等特性的点云结构;ccPointCloudChunkedPointCloudCCLib::ReferenceCloud* rc = ge...原创 2020-03-08 23:03:28 · 1134 阅读 · 0 评论 -
KMP算法学习笔记
KMP算法解决的是在字符串(称为T)中,模式串(称为P)定位的问题:最前面的k个字符和j之前的最后k个字符是一样的:P[0 ~ k-1] == P[j-k ~ j-1]该规律是KMP算法的关键,KMP算法就是利用待匹配的子串自身的这种性质来提高匹配速度。还可以描述成:若子串的前缀和后缀集中,重复的最长子串的长度为k,则下次匹配子串的j可以移动到第k位(下表为0为第0位)。我们将这个解释定义...原创 2020-02-28 00:03:50 · 151 阅读 · 0 评论 -
cloudcompare 插件中尝试调用OpenCV
在处理机载LiDAR点云时,对原始点云进行进行栅格化处理后,可以通过OpenCV开源库进行操作。cloudcompare是开源点云处理软件,该开源软件允许开发者开发插件,将自己的算法集成到软件中。因为在自己实现的算法中调用了OpenCV库,所以在开发插件的过程中也需要调用OpenCV,中间遇到了一些费时间的小问题,特意在此记录。1.cloudcompare编译运行后,Plugins菜单呈现灰...原创 2020-02-18 14:36:05 · 736 阅读 · 0 评论 -
C++相关知识积累
1.I/O问题scanf("%s", T); // 空格和换行都会产生分隔stringstream words(T); // 声明后立即初始化2.AIZU错题总结ITP1_9_A:stringstream使用示例,大小写字母转换;...原创 2020-02-03 22:12:58 · 148 阅读 · 0 评论 -
Ubuntu下尝试使用visual studio code
1.在生成“launch.json”时需要注意参考链接中的步骤为:点击左侧的Debug按钮,选择添加配置(Add configuration),然后选择C++(GDB/LLDB),将自动生成launch.json文件…实际操作时:选择C++(GDB/LLDB)之后,需要选择default configuration才会出现与launch.json内容相同的文件;其余结果与参考链接相同。参...原创 2019-11-14 19:45:18 · 430 阅读 · 0 评论 -
JSON格式数据构造与解析
在进行服务器编程时,服务器与客户端之间需要进行消息的交互,那么交互的消息是以什么格式发送的呢?type | length | data有几种格式选择:1.XML2.JSON3.字节编码ByteBufferJSON格式传输数据#include <iostream>#include "jsoncpp/value.h"#include "jsoncpp/wr...原创 2019-10-19 11:22:24 · 479 阅读 · 0 评论 -
CGAL学习记录
说明1.学习CGAL中点对象,先对象,多边形对象的构造;2.学习如何获取相交对象,并打印输出;重点相交结果的返回类型为:CGAL::cpp11::result_of<Kernel::Intersect_2(A, B)>::type, 等价于boost::optional< boost::variant< T… > >不相交时类型为:boost::op...原创 2019-10-18 19:40:48 · 414 阅读 · 2 评论 -
CGAL4.9配置记录
最重要的一点是修改环境变量之后,需要重新启动CMake GUI;注意安装位数需要对应;VS2015 + Qt5.7.1安装(Qt5只在编译demo时需要使用)具体安装参照“一去二三里”博客;其中需要给Qt添加系统变量:QTDIR = C:\Qt\Qt5.7.1环境变量PATH中添加:C:\Qt\Qt5.7.1\5.7\msvc2015\binBoost库安装安装包在Sou...原创 2019-10-18 10:26:58 · 303 阅读 · 0 评论 -
对vector中的pair进行多次find操作
对vector中的pair进行多次find操作背景代码背景在C++的stl中,对包含pair结构的vector,进行多次搜索操作。代码代码中主要包括两个关键点:因为vector中包含了pair结构,所以在搜索中要用find_if代替常规的find函数;需要对vector经行多次查找操作,且需要查找的值会发生改变,所以要利用仿函数(functor)进行传值。#include <...原创 2018-10-14 09:48:25 · 5490 阅读 · 0 评论 -
【转载】结构之美:单链表的头结点与头指针
结构之美:单链表的头结点与头指针 当链表的每个结点只包含一个指针域时,我们称此链表为单链表。关于单链表的存取,有时候我们在单链表的第一个结点(有效元素)之前附设一个结点,称之为头结点;指向头结点的指针,称之为头指针;对单链表的存取必须从头指针开始进行,由于单链表的最后一个数据元素没有...转载 2018-08-09 19:58:40 · 304 阅读 · 0 评论 -
【PCL学习】将pcd格式点云与txt格式文本互转
PCL中将pcd格式点云与txt转换本文参考了之前有大神写的数据格式转换txt2pcd一文,在进行简单修改之后实现了pcd转txt的代码,欢迎大家指教。格式转换txt2pcd#include&lt;iostream&gt; #include&lt;fstream&gt; #include &lt;string&gt; #include &lt;vector&a原创 2018-05-15 21:15:57 · 12425 阅读 · 8 评论 -
Qt学习杂记
如何让lineEdit组件显示固定位小数double/float size = 2.3334524;QString str = QString::number(size, 'f', 2);其中f代表非科学计数法格式,2代表小数点后两位。QT Creator中解决中文问题(未验证)前面添加#pragma execution_character_set("utf-8")把该文件用记事本打开,另存为ut转载 2017-03-13 23:47:06 · 481 阅读 · 0 评论 -
Eigen :C++开源矩阵计算工具
Eigen非常方便矩阵操作,当然它的功能不止如此,由于本人只用到了它的矩阵相关操作,所以这里只给出了它的一些矩阵相关的简单用法,以方便快速入门。矩阵操作在算法研究过程中,非常重要,例如在图像处理中二维高斯拟合求取光斑中心时使用Eigen提供的矩阵算法,差不多十来行代码即可实现,具体可见:http://blog.youkuaiyun.com/hjx_1000/article/details/8490653Eige转载 2017-01-24 14:29:00 · 1006 阅读 · 0 评论