自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 资源 (3)
  • 收藏
  • 关注

原创 C++使用pointnet++训练模型进行点云分类

环境:ubuntu-18.04nvidia驱动-470cuda-10cudnn-7.4tensorflow1.13.11.版本信息cuda和driver版本tensorflow版本信息2.安装nvidia驱动2.1查看本机显卡硬件型号[ubuntu-drivers devices]推荐安装为版本nvidia-driver-510,我安装的nvidia-driver-4702.2命令行安装sudo add-get-repository p

2022-05-09 02:57:41 2643

原创 调用C,C++ lib文件

C调用C++lib文件在C中引用C++中的函数和变量时,C++的头文件需要添加extern “C”,但是在C的文件中不能直接引用申明了extern“C”的该头文件,应该在C文件中将C++定义的extern “C”函数申明为extern类型。源代码//C++头文件cppExample.h#ifndef CPP_EXAMPLE_H#define CPP_EXAMPLE_Hextern "C" int add( int x, int y );#endif//C++实现文..

2022-04-10 21:23:05 777

原创 C++STL RBT

RB红黑树的主要规则:每个节点不是红色就是黑色的;根节点总是黑色的;如果节点是红色的,则它的子节点必须是黑色的;从根节点到叶节点或空子节点的每条路径,必须包含相同数目的黑色节点;红黑树主要通过三总方式对平衡性进行修改,改变节点颜色,左旋和右旋。Stl tree源码//定义节点颜色typedefbool_Rb_tree_Color_type;const_Rb_tree_Color_type _S_rb_tree_red = false;const_R...

2022-04-10 21:22:37 280

原创 C++ BST

BST(Binary Search Tree)二叉搜索树又称二叉查找树或二叉排序树,在二叉搜索树中若任意节点的左子树不空,则左子树上所有节点的值均不大于它的根节点的值;若任意节点的右子树不空,则右子树上所有的节点的值均不小于它的跟节点的值;一个n个节点的二叉树,如果二叉树是平衡的,则n个节点的二叉树的高度为log2(n+1),二叉树的查找效率为O(log2n),如果二叉树完全不平衡,则其深度可达到n,查找效率为O(n),退化为顺序查找。因此为了获得较好的查找性能,就要构造一个平衡的二叉排

2022-04-10 21:22:21 439

原创 C++STL set和map

关联式容器setSet作为一个容器是用来存储同一类型数据,在set中每个元素值都唯一,且系统能根据元素的值自动进行排序。内部实现红黑树。定义使用:set<int> s; s.insert(1); s.insert(2); s.insert(1);set源码//默认升序排列template<class_Key, class_Compare __STL_DEPENDENT_DEFAULT_TMPL(less<_Key>),...

2022-04-09 18:21:34 476

原创 C++STL Iterator和traits

STL Iterator和traitsSTLIterator1.Iterator定义STL的中心思想在于将数据容器和算法分开,彼此独立设计,然后再用一个粘合剂将其黏再一起,这个粘合剂就是iterator。迭代器是一种智能指针,它针对指针中最常见的内容提领(dereference)和成员访问(member access),这里隐含的一个重要的消息就是迭代器必须包含原生指针,即接待器是原生指针的一种拓展。所以迭代器最重要的就是重载operator*和operator->。2.实现.

2022-04-09 18:20:12 974

原创 C++STL 容器

序列式容器Vectorvector的数据安排以及操作方式,与array非常相似,两者的唯一差别就是空间的运用的灵活性。array是静态空间,一旦配置就不能改变。vector是动态空间,随着元素的加入,它的内部机制会自行扩充以容纳新元素。Vector的基类_Vector_basetemplate<class_Tp, class_Alloc>class_Vector_base {public:typedef_Alloc allocator_type;...

2022-04-09 18:18:47 720

原创 C++STL algo

SGI STL算法数值算法(Numeric)使用需包含文件<numeric>Accumulate函数功能:计算init和[first,last)内所有元素的总和,需要提供一个初始值init使用:Int ia[5] ={1,2,3,4,5};Vector<int> iv(ia, ia+5);Accumulate(iv.begin(), iv.end(), 0);//15, 0+1+2+3+4+5Accumulate(iv.begin().

2022-04-09 18:14:18 466

原创 C++STL functor

仿函数Unary_function用来呈现一元函数的参数类型和返回值类型,其定义非常简单:STL规定,每一个Adaptable Unary Function都应该继承此类别Template <class Arg, class Result>Struct unary_function{Typedef Arg argument_type;Typedef Result result_type;};一旦某个仿函数继承了unary_function,其用户便...

2022-04-09 18:09:29 919

原创 C++STL string

Stringtypedef basic_string<char> string;typedef basic_string<wchar_t> wstring;String类是由模板类base_string<classs CharT , class traits, class alloc>实例化生成的一个类,base_string是由string_base继承而来的子类String_base类源码template <class _T...

2022-04-09 18:07:26 2376

原创 C++STL排序

STL中的排序函数1.Sort函数功能:对给定的区间所有元素进行排序排序算法:快速排序,堆排序,插入排序快速排序的最优时间复杂度:O(nlogn),最差时间复杂度为:O(n^2)插入排序的最优时间复杂度:O(N),最差时间复杂度为:O(N^2)堆排序的最优时间复杂度为:O(nlogn),最差时间复杂度为:O(nlogn)源码://1.快速排序//2.堆排序//3.插入排序template <class _RandomAccessIter>i

2022-04-09 18:04:27 1155

原创 推流拉流WebRtc+Janus+coturn+Nginx方案

1.创建测试SSL,本地http可以拉起摄像头,服务器需要配置https拉起摄像头 在nginx中,可以用ssl模块配置同时支持http和https并存 创建服务器私钥,命令会让你输入一个口令 openssl genrsa -des3 -out server.key 4096 创建签名请求的证书(CSR),设置信息 openssl req -new -key server.key -out server.csr 最后标记证书使用上述私钥和CSR openssl x509 -req

2022-04-09 17:45:33 4983 3

原创 推流拉流RMTP方案:Nginx+ffmpeg/obs+vlc/h5

RMTP方案:Nginx+ffmpeg/obs+vlc/h5 服务器安装 1.依赖 sudoapt-get update sudo apt-get install libpcre3 libpcre3-dev sudo apt-get install openssl libssl-dev 2.安装Nginx 下载nginx-1.17.9.tar.gz+nginx-http-flv-module.zip放到同级目录解压 https://nginx.org/...

2022-04-09 17:36:17 3694 1

原创 linux查看摄像头参数+获取公网地址

获取公网地址 curl ifconfig.me 查看摄像头参数 sudo apt install v4l-utils v4l2-ctl -d /dev/video0 --all

2022-04-09 17:19:48 807

原创 root下执行普通用户权限命令

su - user-c "systemctl --user start chrome-setup.service"

2021-12-30 19:00:42 1605

原创 ubuntu固定USB设备

1.命令终端输入:lsusb ----查看usb设备2.插入需要固定的usb转串口设备3.命令终端输入:lsusb ----查看固定usb接口的硬件ID4.找到多出的外设ID 10c4:ea605.命令终端输入:cd /etc/udev/rules.d/ ----转到rules配置文件夹下6.命令终端输入:sudo vim my_usb.rules ----创建rules文件,重映射设备usb设备名...

2021-12-14 10:44:32 1625

原创 C++STL内存池

一、New delete和std::alloc内存池就是预先分配好,放到进程空间的内存块,用户申请与释放内存其实都是在进程内进行,SGI-STL的alloc遇到小对象时就是基于内存池的。只有当内存池空间不够时,才会再从系统找一块很大的内存。提到new和delete首先会转调用到malloc和free,这个大家应该很熟识了。很多人认为malloc是一个很简单的操作,其实巨复杂,它会执行一个系...

2018-12-05 09:37:52 2079

转载 fatal error C1010: unexpected end of file while looking for precompiled header directive

fatal error C1010: unexpected end of file while looking for precompiled header directive 1.解决办法:1.1、如果发生错误的文件是由其他的C代码文件添加进入当前工程而引起的,则Alt+F7进入当前工程的 Settings,选择C/C++选项卡,从Category组合框中选中Precompiled He

2018-03-01 13:29:01 634

原创 const关键字

常量指针-指针常量const区分常量指针和指针常量的关键就在于星号的位置,我们以星号为分界线,如果const在星号的左边,则为常量指针,如果const在星号的右边则为指针常量。如果我们将星号读作‘指针',将const读作‘常量'的话,内容正好符合。int const * n;是常量指针,int *const n;是指针常量。 //常量指针,const修饰int,表示这个整形值不

2018-01-24 11:24:55 234

原创 Release版本程序定位Crash位置

Carsh一、崩溃地址+MAP文件+COD文件1. 生成应用程序MAP文件MAP 文件是程序的全局符号、源文件和代码行号信息的唯一的文本表示方法,它可以在任何地方、任何时候使用,不需要有额外的程序进行支持。而且,这是唯一能找出程序崩溃的地方的救星。 1.1 VC生成MAP文件我们可以按下 Alt+F7 ,打开“Project Settings”选项页,选择 C/C++ 选项

2018-01-23 16:03:41 843

原创 Visitor模式

Visitor模式一.意图表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 二.适用性1.一个对象结构包含很多类对象,它们有不同的接口,而你想对这些对象实施一些依赖于其具体类的操作。2.需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而你想避免让这些操作“污染”这些对象的类。Vi s i t o r 使得你

2017-07-26 14:49:52 294

原创 Strategy模式

Strategy模式一.意图定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。 二.适用性1.许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个类的方法。2.需要使用一个算法的不同变体。例如,你可能会定义一些反映不同的空间/时间权衡的算法。当这些变体实现为一个算法的类层次时[ H O 8

2017-07-25 15:47:44 229

原创 Observer模式

Observer模式一、意图定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。 二、适用性1.当一个抽象模型有两个方面, 其中一个方面依赖于另一方面。将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。2.当对一个对象的改变需要同时改变其它对象, 而不知道具体有多少对象有待改变。3.当一个对象必须通知其

2017-06-30 14:11:45 252

原创 Memento模式

Memento模式一、意图在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 二、适用性必须保存一个对象在某一个时刻的(部分)状态,这样以后需要时它才能恢复到先前的状态。 如果一个用接口来让其它对象直接得到这些状态,将会暴露对象的实现细节并破坏对象的封装性。 三、结构 Origi

2017-06-29 16:42:38 248

原创 Mediator模式

Mediator模式一、意图用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式的相互引用,从而使其耦合松散,而且可以独立的改变它们之间的交互。 二、适用性1.一组对象以定义良好但是复杂的方式进行通信。产生的相互依赖关系结构混乱且难以理解。2.一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象。3.想定制一个分布在多个类中的行为,而又不想生成太

2017-06-29 14:32:18 177

原创 QT编译出现错误 “undefined reference to ‘vtable for xxx’”

QT编译出现错误 “undefined reference to ‘vtable for xxx’”1.如果该类为基类,并且基类中的虚函数没有实现函数,虚函数需要添加空的实现{}。2.当该类中新加了Q_OBJECT定义,需要重新启动qmake,修改pro中的内容,可以重新启动qmake工具。

2017-06-29 14:20:46 221

原创 共享内存

共享内存一.作用进程间传输数据 二.函数1、shmget函数int shmget(key_t key, size_t size, int shmflg);  Key:程序需要提供一个参数key(非0整数),它有效地为共享内存段命名,shmget函数成功时返回一个与key相关的共享内存标识符(非负整数),用于后续的共享内存函数。调用失败返回-1.Size:size以字

2017-06-09 16:49:09 402

原创 回调函数

回调函数1. 定义A需要使用一个函数,自己不能实现,B实现函数,并且注册函数将函数的指针传给A调用 2. 使用A类:定义回调函数指针:typedef void (*ONGETPOSITIONINFO)(void);注册本地回调函数:ONGETPOSITIONINFO       m_pSendSignal;实现注册回调函数:bool RegisterDRDataCa

2017-05-10 16:44:51 188

原创 QTwin热键接收消息

QTwin热键接收消息1.注册热键 BOOL   RegisterHotKey( HWND   hWnd,         //响应该热键的窗口句柄 Int   id,                       //该热键的唯一标识 UINT   fsModifiers,   //该热键的辅助按键 UINT   vk                 //该热键的键值 

2017-05-10 16:41:33 826

原创 QDBus使用

QDBus使用一.服务端1.需要导出的类继承QObject,将需要导出的接口放在public slots中。2.定义接口:Q_CLASSINFO("D-Bus Interface", "com.XXX.XXX.XX.Interface")3.生成XML接口文件Qdbuscpp2xml -M XXX.h -o com.xx.xxx.xml将类中导出的接口生成xml文件格式

2017-04-06 16:44:05 6699

翻译 编码格式

编码格式ASCII编码:用来表示英文,它使用1个字节表示,其中第一位规定为0,其他7为存储数据,一共可以表示128个字符。 拓展ASCII编码:用于表示更多的欧洲文字,用8个位存储数据,一共可以表示256个字符。 GBK/GB2313/GB18030:表示汉子,GBK和GB2313都是针对简体字的编码,只是GB2313只支持六千多个汉子的编码(不包括特殊字符),而GBK支持1万

2017-02-21 14:53:37 379

原创 string和wstring互转、全角半角互转

string和wstring互转、全角半角互转一.string和wstring互转static std::string wstringTostring(const std::wstring& ws){    std::string curLocale =setlocale(LC_ALL, NULL);    setlocale(LC_ALL,"chs");    const

2017-02-08 16:59:15 600

原创 QT解析XML文件

QT解析XML文件一.QT提供三种处理XML文件方式DOM(DocumentObject Model):将整个 XML 文档读入内存,构建成一个树结构,允许程序在树结构上向前向后移动导航,这是与另外两种方式最大的区别,也就是允许实现多次解析器(对应于 QXmlStreamReader 的一次解析器)。DOM 方式带来的问题是需要一次性将整个 XML 文档读入内存,因此会占用很大内存,这样就

2016-12-20 11:25:09 955

原创 Iterator模式

Iterator模式一.意图提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。二.适用性1.  访问一个聚合对象的内容而无需暴露它的内部表示2.  支持对聚合对象的多种遍历3.  为遍历不同聚合结构提供一个统一的接口(即支持多态迭代)。三.结构四.代码Iterator类H文件#ifndef ITERATOR_H#de

2016-12-16 15:26:41 192

原创 Command模式

Command模式一.    意图将一个请求封装为一个对象,从而使你可用不同的请求对客户记性参数化;对请求排队或记录请求日志,一级支持可撤销的操作。 二.    适用性1.  抽象出待执行的动作以参数化某对象,你可用过程语言中的回调函数表达这种参数化机制。所谓回调函数是指函数现在某处注册,而它将在稍后某个需要的时候被调用。Command模式时回调机制的一个面向对象的

2016-12-07 15:33:18 238

原创 Chain of Responsibility模式

Chain of Responsibility模式一.    意图使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,知道有一个对象处理它为止。二.    适用性1.  有多个的对象可以处理一个请求,那个对象处理该请求运行时刻自动确定。2.  你想在不明确指定接受者的情况下,向多个对象中的一个提交

2016-11-11 16:30:20 213

原创 template method模式

Template Method模式一.    意图定义一个操作中的算法骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。二.    适用性1.  一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现2.  各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复。首先识别现有代码中的不

2016-11-04 15:34:12 279

原创 Interpreter模式

Interpreter模式1.  意图给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。2.  适用性当有一个语言需要解释执行,并且你可将该语言中的句子表示为一个抽象语法树时,可使用解释器模式。而当存在以下情况时该模式效果最好。该文法简单对于复杂的文法,文法的类层次变得庞大而无法管理。此时语法分析生成器这样的工具是更好的选择

2016-10-31 10:58:17 356

原创 proxy模式

Proxy模式一.意图为其他对象提供一种代理以控制对这个对象的访问 二.适用性在需要用比较通用和复杂的对象指针代替简单指针的时候,使用proxy模式。远程代理,虚代理,保护代理,只能指引当第一次引用一个持久对象时,将它装入内存在访问一个实际对象前,检查是否已经锁定了它,以确保其他对象不能改变它。 三.结构  四.代码#

2016-10-21 15:55:26 216

原创 flyweight模式

Flyweight模式一.意图运用共享技术有效地支持大量细粒度的对象二.适用性1.    一个应用程序使用了大量的对象2.    完全由于使用大量的对象,造成很大的存储开销3.    对象的大多数状态都可变为外部状态4.    如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象5.    应用程序不依赖对象标识,由于flyweight对象可以被共享,

2016-08-20 21:26:47 236

QT和JavaScript互调

QT和JavaScript互调,代码和文档

2016-01-27

gdb-6.7&strace-4.5.15

arm平台调试工具,gdb和strace

2015-10-18

QT中使用QWT

WINDOWS下QWT编译 1.解压 (1)解压文件使用QT打开qwt.pro,单机运行进行编译。 (2)完成后将QWT\lib目录下的qwtd.dll和qwt.dll文件复制到QT库的bin目录下。 (3)将QWT\lib目录下的qwtd.lib,qwt.lib文件复制到QT库的lib目录下。 (4)将QWT\designer\plugins\designer目录下的qwt_designer_plugin.dll和qwt_designer_plugin.lib到QT库的plugins\designer目录下。 (5)将QWT\src目录下所有.h和.cpp放入一个空QWT文件夹中,再讲QWT文件夹放入QT库的include目录下。 2.运行 (1)打开example文件夹下相应程序的pro文件。 (2)在pro文件中加入(相应文件夹) LIBS += -L"D:\Qt\4.8.5\lib" -lqwt INCLUDEPATH += D:\Qt\4.8.5\include\QWT include(D:\Qt\QWT\qwt.prf)。 (3)运行。

2014-10-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除