![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
MOLWH
图像算法工程师,主研虚拟人方向
展开
-
linux中非阻塞相应键盘输入
Windows中可以使用#include <conio.h> for _kbhit() and _getch()组合。Linux中可以自己实现一个kbhit()函数,代码如下:#include <iostream>// #include <unistd.h>#include <sys/ioctl.h>#include <termios.h>using namespace std;bool kbhit(){ termios原创 2021-11-12 11:27:08 · 1289 阅读 · 0 评论 -
C++ linkedlist模板实现
C++ linkedlist#include <iostream>#include <string>using namespace std;template <typename T> //注意这里没有分号struct Value{ T m_Value; Value(){ m_Value=0;}};// Value模板具体化(用于处理string类型)template <>struct Value <string>原创 2021-07-09 21:07:16 · 707 阅读 · 0 评论 -
手把手教你用Winsock创建socket server和client
深度理解在Win10上利用Winsock创建socket的服务端和客户端原创 2020-12-11 17:01:50 · 1609 阅读 · 0 评论 -
在C++与python间传视频帧
目录引言1.进程间通信2.基于共享内存的视频传输2.1C++之间的通信引言本案例旨在实现跨语言(C++和python间)视频的实时通信。这一工作内容在实际工程中很常见。由于python语言支持很多第三方库,对于开发深度学习项目很方便,验真算法速度快,很多开源算法也大多基于python实现。这时可能就会出现C++的代码借助python语言做一些图像处理(包括目标检测、姿态估计、目标跟踪等任务)的需求。平台环境:Win10VS2019OpenCV进程间通信方式:共享内存1.进程间通信进程间原创 2020-11-30 21:19:17 · 1568 阅读 · 6 评论 -
C++基础系列题目(1)——sizeof
系列文章目录C++基础系列题目(2)——多态的测试1.定义一个空类型,里面没有任何成员变量和成员函数,对该类型求sizeof,大小是多少?答:1codeclass A{};int main(){ A a; std::cout << sizeof(a) << endl; return 0;}output1解析原本应该是0,但声明类型实例时,必须在内存中占有一定空间大小,否则无法使用。具体占多少取决于编译器。VS中每个空类型原创 2020-11-25 12:07:28 · 250 阅读 · 0 评论 -
C++基础系列题目(2)——多态的测试
1.定义一个空的类型,里面没有任何成员变量和成员函数。对该类型球sizeof,得到的结果是多少?答:1code#include <iostream>using namespace std;class A{};int main(){A a;cout << sizeof(a) << endl;return 0;}output1解释:原本应该是0,但是声明该类型对象时必须在内存中占一定空间,否则无法使用。具体占用多少取决于编译器。V原创 2020-11-24 23:10:21 · 313 阅读 · 0 评论 -
Ubuntu下C++调python
文章目录前言一、Cython的失败过程二、python官方方法前言参考这篇文章如何实现 C/C++ 与 Python 的通信?分别测试了python官网方法和Cython方法。目前只测通了python官网方法,且只是一个小例子,自己的项目还没测试。如果有结果将继续更新。下面将开始记录我的踩坑过程。一、Cython的失败过程先说明,这个方法不是完全失败,编译连接和python初始化还是成功了。就是运行时异常中断。换个代码可能会成功吧。感兴趣的可以尝试。由于我的python项目有些复杂(39原创 2020-11-24 19:08:52 · 1296 阅读 · 2 评论 -
Linux获取本机非127开头的可联网ip地址(C++)
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <ifaddrs.h>bool GetH原创 2020-07-08 16:49:25 · 359 阅读 · 0 评论 -
C++ string查找子串位置
find_first_of()、find()、strstr()find_first_of()查找的是子串中任意字符首次出现的位置。而find()是查找子串整体出现的位置。 string str1 = "ahedhello111"; string str2 = "hello"; int j = str1.find_first_of(str2); //返回1 cout << j << endl; int i = str1.fi原创 2020-06-16 11:57:30 · 14582 阅读 · 0 评论 -
定时器实现——基于Linux系统
先打个卡,下一篇将把各个系统上的定时器code总结一下。包括秒级、微秒级。本篇为根据工程需求,在Linux系统上写的一个简单的定时器。#include <sys/time.h>#include <string>class Timer{private: /* data */ timeval T_starttime; timeval T_pausetime; bool T_isstop; time_t T_timep; str原创 2020-05-25 15:44:50 · 469 阅读 · 0 评论 -
CUDA编译专有符号不识别及与CPP混编
<<<是cuda中专有符号,属于cuda的语法范畴,不能用g++编译器编译。需要用nvcc编译如果需要同时编译.cu和.cpp,需要解决两者混编问题。首先在 .cu 文件中,需要在函数实现前都加上 extern “C”。extern "C" void fun(){// your implement}在.cpp文件中,函数调用前需要声明,声明需要加 ext...原创 2020-04-28 17:25:58 · 921 阅读 · 0 评论 -
VScode + cmakelist.txt + launch.json通过断点调试
cmakelists里加一句set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")原创 2020-04-16 16:47:44 · 868 阅读 · 0 评论 -
thrift安装及示例
1. 简介 Apache Thrift软件框架(用于可扩展的跨语言服务开发)将软件堆栈与代码生成引擎结合在一起,它有自己的跨机器的通信框架,并提供一套库。它是一个代码生成器,按照它的规则,可以生成多种编程语言(C ++,Java,Python,PHP,Ruby,Erlang,Perl,Haskell,C#, Cocoa,JavaScript,Node.js,Smalltalk,OCaml和De...原创 2020-04-15 17:36:01 · 3547 阅读 · 7 评论 -
DeepStream之kafka开发
1. kafka的安装与配置 不多赘述,参考敲代码的椰子和@tsota两位博主的文章。2. .sh文件编写 开启kafka服务要开至少三个终端,我写了一个.sh文件进行批处理,且将这些放在一个终端的多个标签下。参考deepstream开发小结第3节3. 发送数据改写 本文继上篇文章deepstream开发小结进行了补充,重点介绍发送数据的改写。 首先参考DeepStream配置文件 修...原创 2020-04-09 21:42:24 · 3013 阅读 · 19 评论 -
DeepStream结合OpenCV4实现视频的分析和截图(二)
目录0. 前言1. 分源截图2. 参数转换3. 其他问题0. 前言上一篇写的是基于test4的更改,后来应用到app的demo里发现颜色转换存在问题。首先要确定自己的探针添加位置,以及该位置获取的图像颜色空间是什么。在deepstream-app里我查看的是NV12,CV里没有NV12转BGR(或许有,我没找到),所以需要利用NvBufSurfTransform 和NvBufSurfTran...原创 2020-04-09 20:37:04 · 3720 阅读 · 6 评论 -
UE配置opencv插件
环境:Windows10+UE4.24.2+opencv3.4.9+vs2019网上的教程版本比较旧,试了一遍,编译报错。步骤1:创建OpenCV新插件。打开UE->编辑->插件->新插件,选择第三方库,插件名称OpenCV,点击创建插件,会在项目的目录下创建一个Plugins/OpenCV文件。OpenCV目录下的文件如下图所示。步骤2:文件拷贝。在官网...原创 2020-02-16 14:48:18 · 2535 阅读 · 4 评论 -
栈和堆
栈区(stack):由编译器自动分配和释放,用于保存局部变量、返回地址、函数的实参以及上下文。操作方法类似于数据结构中的栈; 堆区(heap):一般有用户(即程序员)分配和释放。常用于用户、临时内存分配,用完归还系统。 堆和栈都属于动态存储区,区别于全局变量、常量的静态存储区。下面对堆和栈的区别进行如下说明:1.管理方式 栈:由编译器管理; 堆:由用户管理;2....原创 2018-05-06 23:43:07 · 225 阅读 · 0 评论 -
C++几个小概念总结
从毕业到从事工作,才发现自己基础到底有多烂,领导问起来一问三不知,场面十分尴尬,愧于说自己学过C++。现在对一些C++中一直模糊的概念做一总结。在接下来的一段时间里也将重新学习C++。1. 静态成员函数 静态成员函数是类里面定义的标注了static的成员函数。它与任何对象无关,不具有this指针,所以也就无法直接访问类对象的非静态成员变量和非静态成员函数。使用非静态成员函数:...原创 2018-05-07 00:14:43 · 339 阅读 · 0 评论 -
C++基础(一)
1、顶层const与底层cosnt 2、命名空间using namespace的注意事项3、字符串 vector 1、顶层const与底层cosnt 顶层是针对于指针或者引用而言,任何类型都可以是顶层const;底层是针对指针对象或引用对象而言。for example:int i = 0;int * const p1 = &i; //顶层co...原创 2018-05-28 07:29:57 · 162 阅读 · 0 评论 -
matlab与C/C++程序互调
一、环境安装及配置1. matlab命令窗口键入mcc -setup。提示出错根据提示到官网下载安装TDM-GCC-64和Mingw64。注意最好不要更改安装路径,安装路径上不要出现空格,如program files2. 设置环境变量:右击 计算机->属性->高级系统设置->高级->环境变量新建系统变量,名称MW_MINGW64_LOC,路径:C:\TD...原创 2020-04-25 17:11:48 · 572 阅读 · 0 评论 -
C++ 基础(二)—— 函数篇
1、CreateDC()方法 创建DC。某些对设备的操作,如在窗口上写字,需要先创建设备DC。 语法:HDC CreateDC( LPCTSTR lpszDriver, //指定设备驱动名 LPCTSTR lpszDevice, //NULL LPCTSTR LPCTSTR, //NULL CONST ...原创 2020-04-25 17:13:29 · 484 阅读 · 0 评论 -
重载
函数重载运算符重载 重载包括函数重载和运算符重载。区别于虚函数的运行时多态,重载属于编译时多态。函数重载 函数重载是指功能相似的不同函数可以拥有相同的函数名。虽然函数名相同,但是编译器可以根据函数参数类型、个数的不同识别不同函数。 实现函数重载要满足以下三个条件之一:参数表中对应的参数类型不同;参数表中参数个数不同;参数表中不同类型的参...原创 2018-05-06 23:18:40 · 302 阅读 · 0 评论