自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c++存储任意类型的函数对象和类

c++ 没有反射系统,在rpc等场景中需要构建用户级反射系统,以便于存储类型或者函数。

2022-12-24 19:41:28 509 1

原创 grpc流式传输示例(c++)

grpc是结合protobuf的远程调用框架,服务端和客户端均支持同步和异步模式。同步模式下,服务器的service函数会阻塞,且当前线程不能再服务其它的client,类似于多线程模式,一个线程服务一个client,可通过ResourceQuota设置最大线程数;异步模式下,grpc提供类似poll方式管理事件,用户注册事件,并接收通知,一个线程管理一个CompletionQueue,通过轮询管理clients,线程模型可以用户自定义,在追求性能的情况下官方推荐异步模式。

2022-12-16 17:14:14 2713

原创 git工具用不了,ssl报错解决

git工具用不了,ssl报错解决

2022-09-02 15:54:59 306

原创 c++ 后台小练习--基于Vue的在线记事本

数据库采用cpp_redist实现的连接池。前后端主要有获取事项,增加事项,删除事项几个简单的功能。前端使用vue3,后端使用。

2022-09-02 13:04:18 1041

原创 多线程数据竞争和代码规范

Rester是基于eventloop和epoll的并发服务器,实现过程中发现了数据竞争的问题,对其进行分析并规范了原始代码。

2022-08-29 22:38:29 245 1

原创 堆栈大小设置过大的未定义行为

背景同样的程序,在两个不同的计算机上运行。台式电脑运行正确,一点错没有,但是当我把程序放到笔记本上运行时,出现了莫名奇妙的错误。win32的打开文件对话框出现问题,打开直接没有反应,每次重启之后才能能打开文件选择界面,但是没办法跳转到其它路径,只能选择默认路径下的文件。 ok,手动改默认路径,选到心仪的文件,问题又来了。thread_monitor::launch: _beginthreadex failed,报这个错,锁定函数,发现是并行库tbb的问题,一顿操作(搜索),似乎就我自己有这样的问题

2022-03-31 10:22:44 457 2

原创 c++手写一个json库

Json test0 = Object{ { "key1", "value1" }, { "key2", "好"}, { "key3", Array { 1, 2, 3 } }, };

2022-03-19 11:53:37 6959 6

原创 Rester---基于ET和Eventloop实现的的多线程http服务器

进一步熟悉linux网络编程,事件循环,http协议。《Linux多线程服务端编程(muduo)》

2022-03-12 10:24:36 2561

原创 十二届蓝桥杯c++A组答案

卡片3181vector的初始化方式()与{}的区别#include<iostream>#include<vector>using namespace std;int main(){ vector<int> cards(10,2021); int i; for(i=1;i<999999;i++) { //cout<<i<<endl; int num=i;

2021-12-26 14:44:37 925

原创 C++ 程序调试工具类

用于阶段运行时间的计时器TS 多次运算平均时间计时器TC如何消除计时器本身构造的时间开销?用于数据分布情况统计的DataCount, 用matplot++做数据可视化数据溢出时如何求平均值?用于分隔符输出数字,行内输出不同类型的数据的输出函数int p=std::pow(10,N),输出结果为何存在999 9999等-1的误差,怎么解决? githubhttps://github.com/hjhj111/Tools...

2021-09-19 21:18:43 378

原创 msvc 三维vector与一维vector读写速度对比

#include<iostream>#include<vector>#include<future>#include<random>#include"TimeCount.h"using namespace std;int row = 200;int col = 200;int hei = 200;int colhei = hei * col;int temp = 0;vector<vector<vector<int&.

2021-09-02 12:38:40 163

原创 正则表达式解析Http请求

正则表达式解析Http请求正则表达式解析Http请求正则表达式解析Http请求1 代码2 解析1 代码#pragma once#include<string>#include<unordered_map>#include<regex>#include<vector>using namespace std;//methodconst char methodGet[] = "GET";const char methodPost[] = "P

2021-07-03 19:05:49 1866

原创 C++泛型算法忽略的点

C++泛型算法忽略的点泛型算法对于容器的要求不是具有足够的空间,而是足够的元素。equal(iter1begin,iter1end,iter2begin) 以a为标准区间比较插入迭代器 back_inserter inseter front_inserter。。。more流迭代器。。。more...

2020-09-03 14:17:38 95 1

原创 c++IO标准库忽略的点

c++IO标准库iostream 的几个函数iostream 的几个函数bad()系统、硬件错误fail()格式、软件错误good()eof()结束clear()重置以上标志位ps: A,B,C表达式表示计算A,B后的Cgetline() read() write()成员函数vs非成员函数 eg, getline(in,line) /cin.getline(rchar,num,delim)get() put()均是成员函数...

2020-09-03 12:46:07 79

原创 effective modern c++(条款31-42)lambda表达式,并发API,微调

effective modern c++(条款31-42)lambda表达式,并发API,微调条款31--避免默认捕捉模式条款32--使用初始化捕捉将对象移入闭包条款33--对auto&&型别的形参使用decltype,以std::forward辅之条款34--优先选用lambda式,而非std::bind条款35--优先选用基于任务而非基于线程的程序设计条款36--如果异步是必要的,则指定std::launch::async条款37--使std::thread型别对象在所有路径皆不可联结条

2020-08-17 21:10:50 227

原创 effective modern c++(条款18-30)智能指针,右值引用,移动语义和完美转发

effective modern c++(条款18-30)智能指针,右值引用,移动语义和完美转发条款18--使用std::unique_ptr管理具备专属所有权的资源条款19--使用std::shared_ptr管理具备共享所有权的资源条款20--对于类似std::shared_ptr但有可能空悬的指针使用std::weak_ptr条款21--优先选用std::make_unique和std::make_shared,而非直接使用new条款22--使用Pimpl习惯用法时,将特殊成员函数的定义放到实现文件条

2020-08-17 18:06:51 181

原创 effective modern c++(条款5-17)auto,转向现代c++

effective modern c++(条款5-17)auto,转向现代c++条款5--优先使用auto,而非显式型别声明条款6--当auto推导的型别不符合要求时,使用带显示型别的初始化物习惯用法条款7--在创建对象时区分()和{}条款8--优先使用nullptr,而非0或NULL条款9--优先选用别名声明,而非typedef条款10--优先选用限定作用域的枚举型别,而非不限定作用域的枚举型别条款11--优先选用删除函数,而非private未定义函数条款12--为意在改写的函数添加override声明条

2020-08-17 16:41:36 176

原创 effective modern c++(条款1-4)型别推导

effective modern c++(条款1-4)型别推导条款1--理解模板型别推导条款2--理解auto型别推导条款3--理解decltype条款4--掌握查看型别推导结果的方法条款1–理解模板型别推导具有引用型别的实参会被当成非引用型别来处理对万能引用形参推导时,左值会进行特殊处理按值传递,忽略const volatile数组或者函数型别推导,实参会退化为指针,除非被用来初始化引用条款2–理解auto型别推导auto会假定使用大括号括起来的初始化表达式代表一个std::initi

2020-08-17 12:34:54 143

原创 史上最简练的effective c++(条款49-55)new,delete,杂项讨论

史上最简练的effective c++(条款49-55)new,delete,杂项讨论条款49-了解new-handler的行为条款50-了解new和delete的合理替换时机条款51-编写new和delete时需固守常规条款52-写了placement new 也要写placement delete条款53-不要轻忽编译器的警告条款54-让自己熟悉TR1在内的标准程序库条款55-让自己熟悉Boost条款49-了解new-handler的行为可用std::set_new_handler设置new处理函数

2020-08-17 11:48:06 113

原创 史上最简练的effective c++(条款41-48)模板与泛型编程

史上最简练的effective c++(条款41-48)模板与泛型编程条款41-了解隐式接口和编译期多态条款42-了解typename的双重意义学习处理模板化基类内的名称条款44-将与参数无关的代码抽离template条款45-运用成员函数模板接受所有兼容类型条款46-需要类型转换时请为模板定义非成员函数条款47-请使用traits classes 表现类型信息条款48-认识template元编程条款41-了解隐式接口和编译期多态隐式接口,即是template的接口,在编译期才生成具体函数,多态也基于表

2020-08-17 11:23:41 144

原创 史上最简练的effective c++(条款32-40)

史上最简练的effective c++(条款32-40)条款32-确定你的public继承模塑出is-a关系条款33-避免遮掩继承而来的名称条款34-区分接口继承和实现继承条款35-考虑virtual函数以外的其它选择条款36-绝不重新定义继承而来的non-virtual 函数条款37-绝不重新定义继承而来的缺省参数值条款38-通过复合塑模出has-a或“根据某物实现出”条款39-明智而审慎地使用private继承条款40-明智而审慎地使用多重继承条款32-确定你的public继承模塑出is-a关系di

2020-08-17 09:56:26 124

原创 如何用vscode 刷leetcode

如何用vscode 刷leetcodeNode.js下载插件使用多个语言每次都undefinedNode.js下载安装并设置环境变量,或者直接在(使用多个语言)中的设置中设置node.exe路径下载插件LeetCode和Debug LeetCode使用多个语言设置语言和工作文件夹:打开vscode左下角设置按钮;搜索leet;设置Default Language设置Workspace Folder注意在code now之前设置相应的语言和工作文件夹每次都undefined重新登录或

2020-08-15 15:13:54 800

原创 pyhon常用内建模块及第三方模块

pyhon常用内建模块即第三方模块datetimecollectionsbase64hashlib、hmacitertoolcontextliburllibxmlpillowrequestchardetpsutildatetime>>> from datetime import datetime>>> datetime.now()datetime.datetime(2020, 8, 14, 17, 0, 5, 815305)>>> dateti

2020-08-14 21:06:26 114

原创 python正则表达式re

python正则表达式re重要的函数compile(pattern[, flags]) 根据包含正则表达式的字符串创建模式对象,提高匹配效率,search match 均在内部进行了compile转换;search(pattern, string[, flags]) 在字符串中查找模式 ,返回第一个查找的子串的MatchObject;match(pattern, string[, flags]) 在字符串开头匹配模式 ,忽略字符串多余的尾部,若要全匹配,模式添加$,表示结尾;split(pat

2020-08-12 10:08:13 120

原创 python基础学习(第二天)

python基础学习(第二天)函数callable(x)判断x是否是可调用对象类双下划线打头的属性或者方法为私有_func();下划线加类名加私有方法,即可访问私有方法class.Class__func()名词: 超类—基类如果你有一个类,并想知道它的基类,可访问其特殊属性__bases同样,要确定对象是否是特定类的实例,可使用isinstance。多重继承,第一个超类覆盖后面超类的相同方法hasattr(class,func)callable(getattr(class,fun

2020-08-11 11:55:38 116

原创 python基础学习(第一天)(二)

python基础学习(第一天)(二)字符串#自动编号>>> "{foo} {} {bar} {}".format(1, 2, bar=4, foo=3) '3 1 4 2' #手动编号>>> "{foo} {1} {bar} {0}".format(1, 2, bar=4, foo=3) '3 2 4 1'#访问组成>>> fullname = ["Alfred", "Smoketoomuch"] >>> "Mr

2020-08-10 17:04:12 92

原创 python基础学习(第一天)

python基础学习(第一天)str, repr, r>>> print(repr("Hello,\nworld!")) 'Hello,\nworld!' >>> print(str("Hello,\nworld!")) Hello, world! str将值转化为用户看懂的字符串,repr用以表示表达式的值。>>> print(r"hello,\n world")hello,\n world>>> print

2020-08-10 11:20:38 147

原创 C++实战--QT实现扫雷

C++实战–QT实现扫雷效果mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include<cmine.h>QT_BEGIN_NAMESPACEnamespace Ui { class MainWindow; }QT_END_NAMESPACEclass MainWindow : public QMainWindow{ Q_OBJECT

2020-08-09 16:49:18 1386

原创 C++实战--QT实现文件行数统计表

C++实战–QT实现文件行数统计表效果mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QDir>#include <QVector>QT_BEGIN_NAMESPACEnamespace Ui { class MainWindow; }QT_END_NAMESPACEclass MainWindow : public Q

2020-08-08 12:21:25 1483

原创 C++实战--QT实现俄罗斯方块

C++实战–QT实现俄罗斯方块效果源码terismainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QKeyEvent>#include "tetris.h"QT_BEGIN_NAMESPACEnamespace Ui { class MainWindow; }QT_END_NAMESPACEclass MainWindow :

2020-08-07 17:17:58 2511

原创 C++实战--QT实现迷你相机

C++实战–QT实现迷你相机效果MainWindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QCamera>#include <QCameraViewfinder>#include <QCameraImageCapture>#include <QQueue>#include <QVector>#inc

2020-08-06 20:45:39 581

原创 C++11并发--实现线程池

C++11并发–实现线程池实现一个线程池类,并加以测试Thread_Pool.h#pragma once#include<iostream>#include<mutex>#include<thread>#include<condition_variable>#include<vector>#include<queue>#include<functional>#include<memory&gt

2020-08-06 10:37:54 231

原创 C++实战--QT实现五子棋

C++实战–QT实现五子棋效果更多效果小破站框架在基类Board中实现单机的五子棋,在继承其的子类Tcp_Board中添加网络通信的部分。Board或者Tcp_Board作为MainWindow的一个子窗口。board.h#ifndef BOARD_H#define BOARD_H#include <QWidget>#include <vector>class Board : public QWidget{ Q_OBJECTpubl

2020-08-05 15:03:59 2059 3

原创 二叉树前序遍历、中序遍历、后序遍历的迭代版

二叉树前序遍历、中序遍历、后序遍历的迭代版前序遍历void preorder(TreeNode* root){ if(root==NULL) return; stack<TreeNode*> s; while(root||!s.empty()) { while(root) { //...处理root

2020-08-02 17:37:04 134

原创 C++并发(四)

C++并发(四)mutexrecursive_mutex 递归锁,防止函数递归调用引起的死锁。try_lock();timed_mutex recursive_timed_mutex对应try_lock_for()或者try_lock_until();std::timed_mutex m;if(m.try_lock_for(std::chrono::seconds(1))){ std::lock_guard<std::timed_mutex> gm(m,std::adop

2020-08-01 11:31:17 106

原创 C++11并发(三)

C++11并发(三)wait_for()和wait_until()都不会令延迟的线程启动,只有get()和wait()会。并发处理同一容器的不同元素是可以的,vector例外。并发处理string steam file stream stream buffer会导致不明确行为,但是标准stream可以。volatile防止对变量内存过渡优化。并发的两个关键问题,不可分割性(atomicity)、次序(oder)。并发的风险控制关键,数据竞争。...

2020-08-01 07:18:52 127

原创 C++并发(二)

C++并发(二)C++并发(一)低级接口thread和promise与高级接口的区别thread对象没有发射策略,尽量开启新线程。没有接口获取线程结果,只有线程ID。必须用exception_ptr导出异常,否则一旦线程异常溢出,程序terminate()。线程必须join()或者detach(),否则terminate(),线程发生移动分配,一样terminate().线程在main()结束前未终止,强行终止。threadquick_exit()结束程序时不析构global和stat

2020-07-31 22:11:51 115

原创 C++11并发(一)

C++11并发(一)头文件#include<thread>//线程头文件#include<chrono>//时间相关函数高级接口std::future<int> result1(std::async(func1));int result2=func2();int resulit=result1.get()+result2;func1()在不支持线程或无线程可用时,通过get()会同步执行,否则益步执行。要遵循 call early and r

2020-07-31 16:29:53 118

原创 必须初始列初始化的成员

必须初始列初始化的成员const成员引用成员对象成员(对象成员所对应的类没有默认构造函数)

2020-07-26 11:49:41 93

原创 window下socket(udp)控制台程序

window下socket(udp)控制台程序server#include <iostream>#include <winsock2.h>#pragma comment(lib, "WS2_32.lib")const unsigned int PORT = 999;const int kBufferSize = 1024;int main() { WSADATA wsData; if (WSAStartup(MAKEWORD(2, 2), &wsD

2020-07-22 11:59:53 184 1

whack-a-mole.zip

基于qt5实现的简单打地鼠,功能包括实时分数,排行,自定义图片(恶搞),背景音乐。具体细节效果可再添加,比如,击中效果,游戏结束界面,用文本文件读写保存用户设置图片,添加用户设置游戏难度,音乐开关。没实现的有点多啊,其实只想记录一下。

2020-04-15

sortcmp.zip

几个排序算法的时间统计比较; 有需要的可以增加排序种类和量级; 个人理解可以多态实现; 这里没有,傻瓜式叠加代码块;

2020-03-13

painter.zip

小白实现的简单画图板 平台:Qt5.14; 功能:简单图形绘制,擦除,存储。 有兴趣可以添加更多图形功能。 有问题请指出,乐意接受批评

2020-03-12

空空如也

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

TA关注的人

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