C++
Alex1_Code
目前从事软件开发工作
展开
-
SDL2绘制ffmpeg解析的mp4文件
SDL2绘制ffmpeg解析的mp4文件原创 2023-10-03 18:49:40 · 1146 阅读 · 0 评论 -
QSettings在项目中的使用
QSetting的使用方法原创 2023-03-12 15:55:14 · 132 阅读 · 0 评论 -
opencv mat布局显示视频流
opencv mat布局显示视频流原创 2023-02-23 17:29:53 · 163 阅读 · 0 评论 -
vscode setting.json的妙用
在当前工程文件创建setting.json文件。原创 2023-02-11 16:32:39 · 185 阅读 · 0 评论 -
python-matplotlib绘制多条曲线
python-matplotlib绘制多条曲线原创 2023-02-04 21:52:17 · 3011 阅读 · 1 评论 -
网络抓包-抓包工具tcpdump的使用与数据分析
网络抓包-抓包工具tcpdump的使用与数据分析原创 2023-01-14 17:28:09 · 1209 阅读 · 0 评论 -
c语言strstr解析定位字符串并存储在结构体中
strstr 函数的查找与使用原创 2022-10-23 20:37:42 · 491 阅读 · 0 评论 -
指针指向二维数组三维数组
指针与数组的联系原创 2022-10-23 20:29:44 · 170 阅读 · 0 评论 -
Leveldb-C bindings for leveldb
leveldb 源码学习原创 2022-09-13 21:29:17 · 249 阅读 · 0 评论 -
Qt layout下遍历删除子控件
场景1:layout下的控件删除背景:工作需要,动态的增加一组组件和删除一组组件。如下示意,点击delete,将QVBoxLayout下的四个button进行删除。布局代码如下:MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow){ ui->setupUi(this); QPushButton* btn = new QPushButto原创 2022-05-30 21:50:18 · 3206 阅读 · 0 评论 -
QT 信号和槽的应用
1. 信号和槽信号和槽的前提条件:自定义类要想利用信号和槽机制,需要继承QObject类。同时在类的开始定义宏Q_OBJECT信号和槽的声明形式:-private slots:-signals:信号只需要声明,不需要对其进行实现。信号没有返回值,只能是void类型。信号和槽的3种写法:2.案例实现工作中需要对一个图片数据文件进行读解析,需要把每一帧数据显示出来,当读出每一帧数据就发送信号,每一帧数据类型是char*类型;需要在窗口中加一个控件label,label需要实时显示帧原创 2022-05-14 11:17:45 · 357 阅读 · 0 评论 -
C++左值(左值引用),右值(右值引用),std::move的测试
示例对左值,右值作为函数参数进行传递进行的调用,以及std::move的使用对构造函数进行调用的测试。测试示例#include <utility> // std::move#include <iostream> // std::cout#include <vector> // std::vector#include <string> class Myclass{public: explicit My.原创 2022-05-07 22:20:33 · 439 阅读 · 0 评论 -
C++ 线程池 + 消息队列 代码实现
线程池+消息队列的代码实现原创 2022-05-05 15:43:49 · 1693 阅读 · 1 评论 -
c++ map的一道key排序面试题引发的思考
map 自定义数据类型作为key的排序问题原创 2022-04-27 10:20:09 · 1095 阅读 · 0 评论 -
观察者模式-源码剖析
观察者设计模式源码剖析原创 2022-04-05 20:41:58 · 1295 阅读 · 0 评论 -
C++单例模式下无法执行析构函数的分析过程
单例模式下的析构调用分析原创 2022-04-01 07:53:40 · 909 阅读 · 0 评论 -
宏在c++项目中的妙用
宏在c++项目中的几种应用场景原创 2022-03-13 11:57:20 · 1449 阅读 · 0 评论 -
C++11多线程(一道面试题的心得与实现)
c++11多线程互斥量,锁的使用,文件读取的操作原创 2022-03-05 22:18:53 · 1080 阅读 · 2 评论 -
设计模式-单例模式(普通模式与线程安全模式)
普通模式代码示例:线程安全模式代码示例:原创 2022-02-12 16:00:52 · 92 阅读 · 0 评论 -
智能指针shared_ptr 与 weak_ptr的区别
weak_ptr是为了解决shared_ptr循环引用的问题,防止双向绑定1. share_ptr 示例图解示意可以看出,当ptr_a,ptr_b的释放,并没有导致A,B 类的析构。2. 对上面 示例的改进:图解示意此时两个类对象均析构,同时ptr_a的use_count为2,ptr_b的use_count为1...原创 2022-02-12 14:56:12 · 820 阅读 · 0 评论 -
设计模式-生成器模式
UML符号说明生成器模式结构-类图示意代码示例#include<iostream>#include<vector>#include<string>/** * It makes sense to use the Builder pattern only when your products are quite * complex and require extensive configuration. * * Unlike in other crea原创 2022-01-30 11:27:57 · 675 阅读 · 0 评论 -
C++标准11
1.演进、环境与资源1.设置编译器的开关支持c++112.数量不定的模板,可以递归使用#include <iostream>using namespace std;void print() {}template<typename T,typename... Types>void print(const T& firstArg, const Types&... args) { cout << firstArg << endl;原创 2021-05-13 13:09:11 · 111 阅读 · 0 评论 -
qt实现文本时钟与qtTime源码分析
1.效果实现2.实现机制利用qt自带timer机制代码展示widget.h#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QString>#include <QTime>#include <QDebug>#include <QLabel>#include <QTimer>#include<iostream>#include原创 2021-12-04 21:15:00 · 424 阅读 · 0 评论 -
鸿蒙ace2.0代码-回调函数-demo示例
#include<iostream>#include <functional> using CallBack = std::function<void(int32_t)>;class Event {public: Event(std::string type, int32_t id) : eventType(type), pageId(id){} std::string GetEvenType() const { return eventType; }原创 2021-10-31 10:12:43 · 457 阅读 · 0 评论 -
ACE组件开源代码分析(3)-布局
代码分析以render_stepper.cpp代码进行分析1.子节点根据布局参数信息,使用自定义的布局算法计算自己的尺寸大小2.根据布局算法计算子节点的位置信息,并将相对位置设置给子节点进行保存pipeline_context.cpp中使用到3.最后布局相应的两个按钮,以及进度条...原创 2021-10-24 16:47:08 · 180 阅读 · 0 评论 -
ACE组件开源代码分析(2)-绘制
绘制方法说明代码分析Flutter_Render_stepper.cpp为例:在flutter层遍历每一个render_node的paint方法进行绘制首先取出节点的render_node链表,进行遍历,遍历之前对链表排序,排序规则如下:可以看出是根据两个节点的索引值index进行排序的。类似于如下例子...原创 2021-10-24 16:23:22 · 739 阅读 · 0 评论 -
C++ GUI QT4编程-qmake运行
1.启动命令行窗口2.输入 qmake -project3.输入qmake -xxx.pro4.解决报错问题,在xxx.pro里面增加一句:QT+=widgets5.make或qmake程序6.运行.exe文件参考链接:https://wiki.qt.io/Transition_from_Qt_4.x_to_Qt5原创 2021-10-24 10:34:43 · 261 阅读 · 0 评论 -
ACE组件开源代码分析(1)-应用启动
应用程序启动的执行过程pipeline_context.cpp从代码可以看出,产生,OverlayComponent,StageComponent,并将其添加到StackComponent中642行通过rootElement获得rootRenderNode,并将其添加到窗户Window之中StackComponent继承ComponentGroup类,添加子节点的代码如下:component_group.cpp其次rootComponent进行elementTree树的初始化,建立roo原创 2021-10-23 22:28:41 · 160 阅读 · 0 评论 -
Qt Json解析后数据点后绘制折线
1.前言上一节是利用qt的json模块解析出数据点,本节是将解析出的数据点绘制成折线。2.代码目录运行效果json数据点绘制效果3.代码展示mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include<QPainter>#include <QMainWindow>QT_BEGIN_NAMESPACEnamespace Ui { class MainWindow; }QT_END_NAMES原创 2021-08-15 21:18:03 · 230 阅读 · 1 评论 -
std::pair与容器Vector或Array搭配使用
1.代码demo2.运行结果3.代码展示#include<iostream>#include<utility>#include<vector>#include<array>using Point = std::pair<int, int>;using Points = std::vector<Point>;using Points_1 = std::array<Point,10>;int main()原创 2021-08-04 22:10:18 · 843 阅读 · 0 评论 -
std::function常见的5种用法
std::function常见的几种用法运行结果:代码示例:#include<iostream>#include<functional>#include<string>class FOO {public: void operator()(int i) { std::cout << "print i=" << i << std::endl; } void print_add(int i) const { std原创 2021-08-02 21:57:03 · 392 阅读 · 0 评论 -
单例模式(c++两种实现方法)
代码1静态类成员在调用静态成员函数时生成,通过静态成员函数返回静态类成员,实现整个类只有一个对象,此做法优点:编译时不为静态成员变量分配内存,节省内存空间。#include<iostream>class A {public: static A& getInstance(); void setUp();private: A() { std::cout << "A Construct functon" << std::endl; }; A(const原创 2021-07-17 22:30:43 · 212 阅读 · 1 评论 -
机房预约管理系统(c++完整实现)
代码框架编译运行环境:vs2017 IDE源代码文件分类窗口如下:涉及的主要技术点:map,vector容器,文件读写操作,c++的封装、继承、多态系统实现思路思路在资源文件Text.txt文件中各模块实现代码computerRoom.hcomputerRoom.h#pragma once#include<iostream>class computerRoom {public: int m_Id; int m_MaxNum;};globalFile.h原创 2021-06-18 17:39:59 · 5002 阅读 · 19 评论 -
Stack类-Template泛型编程实现
实现步骤1.编写stack栈类,实现stack栈的各个功能(push,pop,getsize…)2.输入一个字符串,将字符串逆序输出3.将stack类模板化Stack.h#include<iostream>using namespace std;template<typename T>class Stack {private: size_t size{ 0 }; T elements[100];public: Stack(); bool empty();原创 2021-06-14 20:37:57 · 145 阅读 · 0 评论 -
Sort排序函数-Template泛型化编程
GenericSort.h#pragma once#include<iostream>#include<array>//模板声明和实现一起放在头文件//选择排序法template<typename T>void selectionSort(T list[], const size_t size) { for (int i = 0; i < size - 1; i++) { T min = list[i]; size_t index = i;原创 2021-06-13 21:45:32 · 289 阅读 · 0 评论