C++
文章平均质量分 56
Mr.deeplan
这个作者很懒,什么都没留下…
展开
-
ORB_SLAM ROS编译问题:libopencv_core3.so.3.3.1,_ZN2cv6String10deallocateEv
文章转载自:https://blog.csdn.net/qq_43445817/article/details/100835304感谢原作者.ORBSLAM2地图保存、轨迹保存:https://blog.csdn.net/kyjl888/article/details/88416122笔者首先在~/.bashrc上设置了路径:1 sudo vim ~/.bashrc ##(gedit ...转载 2020-01-03 20:34:49 · 1670 阅读 · 0 评论 -
关联容器map
map是一种key-value关联的容器,第一个称为关键字,只能在map中出现一次,第二个称为关键字的值。特点:map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。1、map是<键—值>对的集合 如:map< string ,int> word_count。...转载 2018-12-28 22:40:57 · 189 阅读 · 0 评论 -
智能指针与堆内存管理
目录shared_ptrstd::weak_ptrstd::unique_ptr使用时注意事项:①.new的普通指针与shared_ptr转换:②.指向栈的指针与shared_ptr转换:3.智能指针向常规指针的转换自从c++11引入智能指针shared_ptr后,我们似乎再也不用担心new的内存没有释放之类的问题了,但是也带来了其他的问题。shared_...原创 2018-10-23 16:05:28 · 1111 阅读 · 0 评论 -
C++虚函数表剖析
关键词:虚函数,虚表,虚表指针,动态绑定,多态一、概述为了实现C++的多态,C++使用了一种动态绑定的技术。这个技术的核心是虚函数表(下文简称虚表)。本文介绍虚函数表是如何实现动态绑定的。二、类的虚表每个包含了虚函数的类都包含一个虚表。 我们知道,当一个类(A)继承另一个类(B)时,类A会继承类B的函数的调用权。所以如果一个基类包含了虚函数,那么其继承类也可调用这些虚函数,换句话说,...转载 2018-10-21 11:35:10 · 114 阅读 · 0 评论 -
详解C++中基类与派生类的转换以及虚基类
原文来源:https://www.jb51.net/article/72586.htm#C++基类与派生类的转换在公用继承、私有继承和保护继承中,只有公用继承能较好地保留基类的特征,它保留了除构造函数和析构函数以外的基类所有成员,基类的公用或保护成员的访问权限在派生类中全部都按原样保留下来了,在派生类外可以调用基类的公用成员函数访问基类的私有成员。因此,公用派生类具有基类的全部功能,所有基类...转载 2018-10-21 10:36:54 · 785 阅读 · 0 评论 -
C++ 隐式类类型转换
《C++ Primer》中提到:“可以用 单个形参来调用 的构造函数定义了从 形参类型 到 该类类型 的一个隐式转换。”这里应该注意的是, “可以用单个形参进行调用” 并不是指构造函数只能有一个形参,而是它可以有多个形参,但那些形参都是有默认实参的。那么,什么是“隐式转换”呢? 上面这句话也说了,是从 构造函数形参类型 到 该类类型 的一个编译器的自动转换。 总结一下:...转载 2018-10-21 10:04:17 · 153 阅读 · 0 评论 -
unordered_set (2)
unordered_set::bucket_size()size_type bucket_size ( size_type n ) const;返回第N个存储桶中的元素数量。存储桶是容器内部哈希表的一个插槽,根据哈希值为其分配元素。存储桶中的元素数量会影响访问存储桶中特定元素所需的时间。容器会自动增加存储桶的数量,以使负载系数(即平均存储桶大小)低于其max_load_facto...原创 2018-10-17 19:13:30 · 688 阅读 · 0 评论 -
unordered_set
template < class Key, // unordered_set::key_type/value_type class Hash = hash<Key>, // unordered_set::hasher class Pred = equal_to<K...原创 2018-10-17 17:42:56 · 839 阅读 · 0 评论 -
C++中struct和class的区别
本文转载自:点击打开链接一, C ++中的结构对象的结构进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获得了太多的功能。 结构能包含成员函数吗?能! 结构能继承吗?能! 结构能实现多态吗?能! 最本质的一个区别就是默认的访问控制,体现在两个方面: 1)默认的继承访问权限.struct是公共的,类是私有的。 ...转载 2018-06-04 11:26:56 · 154 阅读 · 0 评论 -
指向指针的指针的应用
#include <iostream>#include <stdio.h>using namespace std;int main(void){ int a = 10; int *p = &a; int **p1 = &p; cout << "a的地址:" << &a << end原创 2018-09-06 15:30:39 · 175 阅读 · 0 评论 -
指针指向的地址的说明
1. 指向指针的指针的应用场景指针的指针可以存储结点指针的数组;2. 简单举例与某块内存的值(int a = 10;),某块内存的地址(int *p = &a;),二者是没有关系的,也即值的改变(a = 20;)不会影响内存地址(实在像废话)。int *p; ⇒ int (*p); // 指向整型的指针,称为整型指针变...转载 2018-09-06 16:28:55 · 4441 阅读 · 0 评论 -
c++ 指针本质
自:http://blog.csdn.net/fjb2080/article/details/5623427 原创文章,转载请注明出处,谢谢!作者:清林,博客名:飞空静渡博客地址:http://blog.csdn.net/fjb2080 其实,对于C 或者C++ ,最难的一块地方估计就是指针了。指针是强大的,但也是很多人载在这里的地方。 前段时间写了一篇文章《C ++...转载 2018-09-12 15:38:00 · 697 阅读 · 0 评论 -
C++中的 .h 和 .cpp 区别详解
在C++编程过程中,随着项目的越来越大,代码也会越来越多,并且难以管理和分析。于是,在C++中就要分出了头(.h)文件和实现(.cpp)文件,并且也有了Package的概念。对于以C起步,C#作为“母语”的我刚开始跟着导师学习C++对这方面还是感到很模糊。虽然我可以以C的知识面对C++的语法规范,用C#的思想领悟C++中类的使用。但是C#中定义和实现是都在一个文件中(其实都是在类里面),而使用...转载 2018-09-29 09:15:02 · 39329 阅读 · 4 评论 -
C++ 初始化列表(转载)
何谓初始化列表与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。在C++中,struct和class的唯一区别是默认的访问性不同,而这里我们不考虑访问性的问题,所以下面的代码都以struct来演示。struct foo{ string name ; int id ; foo(st...转载 2018-09-29 09:26:11 · 124 阅读 · 0 评论 -
vs 平台工具集版本
VS从2010之后开始支持使用之前的版本进行编译,可以在工程属性->常规中进行设置。VS各版本对应的工具集版本号如下:-Visual Studio 2015: V140-Visual Studio 2013: V120-Visual Studio 2012: V110-Visual Studio 2010: V100-Visual Studio 2008: V90...转载 2018-10-14 15:02:59 · 5595 阅读 · 0 评论 -
C++ set用法详解
1.关于setC++ STL之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string ,list等方面的容器,更重要的是stl封装了许多复杂的数据结构和大量实用的数据结构操作。vector封装了数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如:插入、排序、删除、查找等。让用户在...转载 2018-12-29 20:48:37 · 159 阅读 · 0 评论 -
二叉树的存储结构
二叉树的存储结构有两种,顺序存储结构和链式存储结构。1.顺序存储结构 按照顺序存储结构的定义,我们可以使用一组地址连续的存储单元自上而下,自左至右存储完全二叉树上的结点元素,即将完全二叉树上的结点元素存储在一维数组中下标为i-1的分量中。如下所示:这种存储方式对于满二叉树和完全二叉树是 非常合适也是很高效的。因为满二叉树和完全二叉树采用顺序存储结构既不浪费空间,也可以根据公式很快地...转载 2018-12-29 22:26:16 · 1517 阅读 · 1 评论 -
Google Breakpad--VS2015 编译、使用、定位错误(如何使用gyp)
https://blog.csdn.net/wangshubo1989/article/details/53334033转载 2019-10-01 20:52:40 · 205 阅读 · 0 评论 -
【牛客网】快慢指针引起的段错误
//快指针找到中间节点//能正常运行的写法 ListNode*slow=head; ListNode*fast=head; while(fast!=nullptr&&fast->next!=nullptr) { slow=slow->next; fast=...原创 2019-07-21 15:32:20 · 316 阅读 · 0 评论 -
c++友元函数和友元类
1. 友元 友元提供了一种普通函数或者类成员函数访问另一个类中的私有或者保护成员的机制。有两种形式的友元:(1)友元函数:普通函数访问某一个类的私有或保护成员。(2)友元类:类A的成员函数访问类B的私有或者保护成员。优点:提高程序运行效率确定:破坏了类的封装性和数据的透明性。3.实现3.1.友元函数3.1.1.声明和定义在类声明的任何区域中声明...转载 2019-06-03 14:37:34 · 610 阅读 · 0 评论 -
release模式下缺少动态链接库
在编译meshlab时候,release模式下编译,完成后meshlab缺少一些Qt5的动态链接库,此时这些动态链接库到哪里找呢?按照我的Qt5.8安装目录D:\Qt\Qt5.8.0,此时动态链接库应该在D:\Qt\Qt5.8.0\5.8\msvc2015_64\bin目录下。而此时D:\Qt\Qt5.8.0\Tools\QtCreator\bin目录下也有相应的动态链接库,但实际上这是支持Q...原创 2019-06-08 17:22:22 · 564 阅读 · 0 评论 -
C++public/private/protected访问控制权限本质
本文来源于:https://www.cnblogs.com/chio/archive/2007/06/11/779408.html感谢原作者!成员函数是属于类的,而成员变量是属于对象的。类是将数据成员和进行于其上的一系列操作(成员函数)封装在一起,注意:成员函数可以操作数据成员(可以称类中的数据成员为泛数据成员)!对象是类的实例化,怎样理解实例化?其实每一个实例对象都只是对其中的数据成...转载 2019-06-12 21:39:48 · 314 阅读 · 0 评论 -
C++在delete指针之后是否要置为null
C++ 中delete一个指针之后,只是回收该指针指向的堆空间,而指针本身的值不变(也就是说delete并不将指针删除,同时指针仍然指向原来的那个地址)需要手动将其赋值为NULL。...原创 2019-06-12 16:32:15 · 1358 阅读 · 0 评论 -
Partition算法
partition算法是一种分类算法,简单来说就把一个序列分成前后两部分,前一部分都是满足某一条件的元素,后一部分都是不满足该条件的元素。关于partition算法最著名的应用就是quick sort(快速排序)了除了快速排序外,partition算法还经常用在下列场合:在O(N)的时间内找出一个序列中第k大(小)的元素。 在O(N)的时间内找出一个序列中所有比k大(小)的元素。快速排...转载 2019-05-22 15:52:25 · 5901 阅读 · 0 评论 -
牛客网[最小的k个数]
题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,解法1;利用最大堆,O(nlogk)vector<int> GetLeastNumbers_Solution(vector<int> input, int k) { if(input.empty()||k>inp...原创 2019-05-22 09:54:35 · 175 阅读 · 0 评论 -
C++ map查找key时注意事项
1、在map中,由key查找value时,首先要判断map中是否包含key。2、如果不检查,直接返回map[key]可能出现意想不到的行为。如果map包含key,没有问题,如果map不包含key,使用下标有一个危险的副作用,会在map中插入一个key的元素,value取默认值,返回value。也就是说,map[key]不可能返回null。3、map提供两种方法来检查,是否包含key,m.c...转载 2019-05-21 21:37:57 · 1917 阅读 · 0 评论 -
C++ 虚基类
原文链接:https://blog.csdn.net/chlele0105/article/details/22654869写的非常详细,包括虚基类的说明和虚基类的构造函数和析构函数顺序问题等都有较详细说明。...转载 2019-03-22 15:35:47 · 257 阅读 · 0 评论 -
细说new与malloc的10点区别(转载)
原文地址:https://www.cnblogs.com/QG-whz/p/5140930.html写的很好,Mark。转载 2019-03-22 11:18:56 · 125 阅读 · 0 评论 -
c_str()函数问题
c_str()函数用于string与const char*之间的转换,也经常能用到,下面的例子你说输出啥?#include <iostream> #include <string> using namespace std; int main() { string s = "Alexia"; const char *str...转载 2019-03-24 21:32:13 · 2589 阅读 · 0 评论 -
C++ 类模板
类模板的定义即类采用模板的形式出现,和函数模板一样,对参数没有具体的实例化template <class T> //声明一个模板,虚拟类型名为T。注意:这里没有分号。class Compare //类模板名为Compare{public : Compare(T a,T b) { x=a;y=b; } T max( ) { ...转载 2019-01-09 09:56:40 · 659 阅读 · 0 评论 -
数组指针和指针数组
数组指针和指针数组的区别:数组指针(也称行指针)定义 int (*p) [n];( )的优先级高,首先说明,p是一个指针,指向的元素类型是int [n] ,也就是说这个指针的步长就是一维数组的长度,当执行p + 1时,p要跨过n个长度。如果将一个二维数组赋给一指针,应这样:int a[3] [4];int (*p)[4];//定义一个数组指针,指向元素为int[4] ,即一...转载 2019-01-13 22:00:08 · 100 阅读 · 0 评论 -
vector()构造函数
C++11:default (1) explicit vector (const allocator_type& alloc = allocator_type()); fill (2) explicit vector (size_type n); vector (size_type n, const value_type&...原创 2018-10-17 16:02:25 · 581 阅读 · 0 评论 -
vector erase()用法
iterator erase (const_iterator position);iterator erase (const_iterator first, const_iterator last);从vector中删除一个元素(position),或者范围元素( [first, last) )参数:position :iterator 指向vector 中要删除元素的位置。 ...原创 2018-10-17 15:23:45 · 52837 阅读 · 4 评论 -
函数返回值
一般说来,函数中是可以进行局部变量的返回的,不然岂不是全部要用全局变量,如果使用了全局变量,那还有必要进行返回吗?那函数就没有它存在的意义了!但是要注意了,这里所谓的局部变量的返回很有内涵,什么样的值才可以进行返回而不出错?其实,只要遵守一句话即可:函数不能返回指向栈内存的指针! 为什么?因为返回的都是值拷贝! 我们知道,局部变量的作用域是函数内部,函数一旦执行结束,栈...转载 2018-10-06 11:51:15 · 277 阅读 · 0 评论 -
对象作为参数和返回值 复制(拷贝)构造函数
先看一道搜狗的校园招聘题: 不考虑任何编译器优化(如:NRVO),下述代码的第10行会发生#include <stdio.h>//1class B//2{//3};//4B func(const B& rhs){//5 return rhs;//6}//7int main(int argc,char **argv){//8 B b1,b2;//9 ...转载 2018-10-06 11:27:11 · 1980 阅读 · 1 评论 -
C++无名对象
#include <iostream>using namespace std;class A{public: explicit A(int val):m_val(val){cout<<"call 1"<<endl;} A(const A& rhs):m_val(rhs.m_val){cout<<"call 2"<&a转载 2018-10-06 11:08:10 · 664 阅读 · 0 评论 -
Explicit Constructors
Explicit Constructors(显式构造函数)收藏 按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p ); // 用C风格的字符串p作为初始化值//…}String s1 = “hello”; //OK 隐式转换,等价于...转载 2018-10-06 09:25:56 · 126 阅读 · 0 评论 -
点云配准各种方法总结
https://blog.csdn.net/Ha_ku/article/details/79755623转载 2018-10-12 15:39:56 · 6614 阅读 · 0 评论 -
CloudCompare的编译过程
之前cmake编译得到的cloudcompare ,不能打开pcd文件,提升“can't open pcd files”。所以需要重现编译源码。 解决办法就是在cmake中打开开启 INSTALL_QPCL_PLUGIN选项 再编译安装,cmake会找到PCL安装的目录,利用pcl生成QPCL_IO_PLUGIN插件,后面在vs中编译时候就能看到这个插件,如图然后cmake可能报一些错...原创 2018-09-21 16:39:15 · 2475 阅读 · 8 评论 -
windows下libfreenect2的安装
本文转自:https://blog.csdn.net/jiaojialulu/article/details/51446398参考链接:https://blog.csdn.net/qq_22033759/article/details/50925667参考链接:https://blog.csdn.net/Peng154/article/details/79127630libfreene...转载 2018-09-20 09:49:13 · 825 阅读 · 0 评论