C/C++知识
highoooo
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C/C++ (public、private、protected)
(public、private、protected)原创 2022-11-29 11:47:41 · 635 阅读 · 0 评论 -
C/C++ 虚函数
virtual原创 2022-11-29 09:59:44 · 134 阅读 · 0 评论 -
C/C++ 从多重路径获取img名字
C/C++从多重路径获取img名字。原创 2022-07-22 10:45:52 · 373 阅读 · 0 评论 -
C/C++ MMOCR C调用python简单部署
C原创 2022-06-07 09:17:56 · 374 阅读 · 0 评论 -
C/C++ 地址作为参数在函数内malloc后返回没有成功修改值
必须要在外面malloc原创 2022-06-01 14:52:18 · 172 阅读 · 0 评论 -
C/C++ 自定义sort方法
转#include<iostream>#include<algorithm>#include<vector>#include<opencv2\opencv.hpp>using namespace std;using namespace cv;vector<cv::Point2d> po; //自定义排序函数 bool sortFun(const cv::Point2d &p1, const cv::Point2d &a原创 2022-05-24 13:31:51 · 434 阅读 · 1 评论 -
C/C++ YAML玩法
配置文件width : 640height : 360framerate : 25.0faces_active: [5,6,7,1] cameras_active: [1,2,3] channels: - rtsp: rtsp://admin:a12345678@192.168.1.2:554/Streaming/Channels/102 chn: 1 - rtsp: rtsp://admin:a12345678@192.168.1.2:554/Streaming/Ch原创 2022-04-26 15:10:02 · 706 阅读 · 0 评论 -
C/C++ std::mem_fn
#include <functional>#include <iostream> struct Foo { void display_greeting() { std::cout << "Hello, world.\n"; } void display_number(int i) { std::cout << "number: " << i << '\n'; }转载 2022-04-25 09:54:57 · 187 阅读 · 0 评论 -
C/C++ 数组作为参数并改值
inference(hasface,lastface_pts,lastPts,img);void inference(bool hasface[],int64_t lastface_pts[], int64_t lastPts,cv::Mat img) inference(&hasface,&lastface_pts,lastPts,img);void inference(bool &hasface[0],int64_t &lastface_pts[0], int64_原创 2022-04-22 14:26:36 · 3870 阅读 · 0 评论 -
C/C++ linux 时间戳
struct timeval pts;gettimeofday(&pts,NULL);int64_t ptsTime = (int64_t)pts.tv_sec * 1000 + (int64_t)pts.tv_usec / 1000;原创 2022-04-22 09:14:39 · 1930 阅读 · 0 评论 -
C/C++ std::string
替换replace(str.begin(),str.end(),'/',' ');查找std::string a = "1234456";std::cout<<a.find("12345")<<std::endl;std::cout<<a.find("4")<<std::endl;原创 2022-04-12 09:56:24 · 1028 阅读 · 0 评论 -
C/C++ 安全队列封装 conqueue.h
#ifndef __CONCURRENCEQUEUE_H__#define __CONCURRENCEQUEUE_H__#include <mutex>#include <condition_variable>#include <deque>#include <queue>#include <memory>template<typename DATATYPE, typename SEQUENCE = std::deque<原创 2022-03-29 13:21:13 · 937 阅读 · 0 评论 -
C/C++ 图片拼接
// TODO 1 merge frame(background)/face(tmp_ptr->frame) into one image cv::Mat background; cap.read(background); cv::Mat dst(720,1280,CV_8UC3); cv::Rect rect_face(0,0,640,720); cv::resize(tmp_pt原创 2022-03-29 10:30:36 · 5757 阅读 · 0 评论 -
C/C++ new,malloc
#include <thread>#include <vector>#include <iostream>#include <stdio.h>#include <unistd.h>#include <thread>#include <list>using namespace std;class cla{public: int h; cla();};cla::cla(){ h=1原创 2022-03-25 14:59:55 · 1331 阅读 · 0 评论 -
cmake configure/generate/make/install
./configure-./generate # generate Makefile from Makefile.inmake # use Makefile to build the programmake install # use Makefile to install the program原创 2022-02-14 09:52:24 · 490 阅读 · 0 评论 -
类指针、类对象、new
定义一个class Data类对象 Data a;只在栈生成一个对象a。类指针 Data* p ;在栈生成一个4个字节的指针p来保存地址,但是指针的值(也就是地址)不确定,可以是任何值,这就是传说中的野指针。(出了作用域就没了,int* p;到底有没有在堆空间开辟一个4字节大小的内存空间呢?没有,这是在栈内定义的一个指针,所以是在栈内开辟了一个4字节大小的内存空间(用来放指针变量了),与此对应的,int* p = new int;是在栈上开辟了4个字节放指针,又在堆上开辟了4个字节(准备)放int原创 2022-01-04 10:32:36 · 2197 阅读 · 0 评论 -
typedef extern
https://blog.youkuaiyun.com/we1meng/article/details/70248123原创 2021-12-20 16:37:40 · 402 阅读 · 0 评论 -
C/C++ 多线程问题
两个线程同时取frame,无序push到queue,导致内存出错#include <iostream>#include <opencv2/opencv.hpp>#include <stdio.h>#include <unistd.h>#include <thread>#include <string>#include <queue>#include <vector>using namespac原创 2021-12-15 13:25:39 · 2544 阅读 · 0 评论 -
线程间隔时间执行
std::this_thread::sleep_for(std::chrono::milliseconds(1000));原创 2021-12-15 10:02:39 · 534 阅读 · 0 评论 -
C/C++ YAML配置文件读取
不能嵌套结构体 mmp会报错typedef struct _VideoWrapper{public: std::string video; //mp4 bool active; int chn; std::vector<int> times; std::vector<cv::Rect> rois;}VideoWrapper;typedef struct _VideoStaticWrapper{ char filetype[.原创 2021-11-30 14:53:49 · 1254 阅读 · 0 评论 -
C/C++ 查看数据类型
#include <typeinfo> cout << typeid( iobj ).name() << endl; // 打印: int cout << typeid( 8.16 ).name() << endl; // 打印: double原创 2021-11-30 09:56:07 · 1488 阅读 · 0 评论 -
C/C++ opencv Mat .copy
https://blog.youkuaiyun.com/qq_32095699/article/details/81007162深拷贝:操作系统为B开辟了新的内存空间,所以A改变不会导致B改变Mat A,B;A = imread("1.jpg");B = A.clone();浅拷贝:B只拷贝了A的地址,所以A改变的话会导致B改变。Mat A,B;A = imread("1.jpg");B = A;...转载 2021-11-25 09:09:28 · 767 阅读 · 0 评论 -
C/C++ TensorRT引擎多线程推理多个rtsp流并显示或保存
文章目录主要思路一、超参数和常量二、简易的WrapData类三、opencv获取rtsp流四、.engine 推理部分五、主函数流程主要思路每个thread负责一个rtsp流,主线程里定义WrapData类型的消息队列(目的是包含frame和对应的rtsp信息),传到每个线程里面去通过opencv获取frame,将frame和rtsp信息包装到WrapData后push到队列中,主函数中捕捉到队列长度大于1则进行.front()推理并在推理结束后.pop()一、超参数和常量#define NMS_原创 2021-11-24 09:21:13 · 5334 阅读 · 20 评论 -
C/C++ 子线程阻塞主线程
如果不需要子线程阻塞主线程,就不要调用join方法thread生成后就已经在执行了,不需要.join研究以下.join .detach几个thread相关的方法原创 2021-11-23 14:39:14 · 1856 阅读 · 0 评论 -
C/C++ 局部静态变量
局部静态变量整个程序周期只有局部可以访问变量i,其他地方都无法访问,相比于全局变量到处都可以访问更容易分控。原创 2021-11-22 17:01:07 · 481 阅读 · 0 评论 -
C/C++ 引用/std::ref
1.如果形参是指针,可以改变实参的值,但不易读2.如果形参是变量,不能改变实参的值3.引入引用,形参前+ &,改变实参且易读1 int i1 = 10, i2 = 20 ; //i1和i2都是int型2 int &r1 = i1, &r2 = i2; //r1和r2都是引用3 int &r3 ; //报错:引用必须初始化4 int &r4 = i1, &r5 = i2; //r1, r4同为i1原创 2021-11-22 14:41:07 · 340 阅读 · 0 评论 -
C/C++ 进程和线程
首先我们来回顾下线程和进程的概念:进程:CPU 进行资源分配的基本单位线程:CPU 调度的最小单位这是进程和线程最官方也是最常见的两个定义,但是这两个概念太抽象了,很难以理解。通俗一点讲:进程可以描述为一个应用程序的执行程序,线程则是进程内部用来执行某个部分的程序。下面再引用一段知乎的高赞回答,我感觉非常有意思:做个简单的比喻:进程=火车,线程=车厢线程在进程下行进(单纯的车厢无法运行)一个进程可以包含多个线程(一辆火车可以有多个车厢)不同进程间数据很难共享(一辆火车上的乘客很难换到另外一原创 2021-11-22 11:28:26 · 1119 阅读 · 0 评论 -
C/C++ 声明和定义
声明:(本文件/其他文件/将来会/有这个东西)告诉编译器,这个变量名或对象已经匹配到一块内存空间上了。声明可以出现多次。告诉编译器,这个名字已经被预定了,别的地方再也不能它来作为变量名或对象名。这种声明最典型的例子就是函数参数的声明定义:(分配空间)就是编译器为一个变量或对象分配一块内存空间,并给它取上名字。这个名字就是变量名或对象名。并且,在这个变量的作用域中只能被定义一次,当被定义多次的时候,编译器会报错。说你重覆定义同一个变量或对象。声明/定义次数变量/函数可以声明多次,变量/函数的原创 2021-11-22 11:01:31 · 335 阅读 · 0 评论 -
C/C++ gcc/make/cmake
Cmake生成makefile调用gcc编译源文件原创 2021-11-22 10:33:39 · 272 阅读 · 0 评论 -
C/C++ 数据类型
https://www.php.cn/faq/415653.html原创 2021-11-22 10:27:07 · 239 阅读 · 0 评论
分享