编程语言
文章平均质量分 59
jamin_liu_91
找到自己喜欢的,热爱自己热爱的,专注自己本职的!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ Lambda表达式详解
lambda表达式(也称为lambda函数)是在调用或作为函数参数传递的位置处定义匿名函数对象的便捷方法。通常,lambda用于封装传递给算法或异步方法的几行代码 。原创 2023-01-31 15:06:58 · 2098 阅读 · 0 评论 -
无锁队列概述
一、无锁队列原理1、队列操作模型队列是一种非常重要的数据结构,其特性是先进先出(FIFO),符合流水线业务流程。在进程间通信、网络通信间经常采用队列做缓存,缓解数据处理压力。根据操作队列的场景分为:单生产者——单消费者、多生产者——单消费者、单生产者——多消费者、多生产者——多消费者四大模型。根据队列中数据分为:队列中的数据是定长的、队列中的数据是变长的。(1)单生产者——单消费者(2)多生产者——单消费者(3)单生产者——多消费者...原创 2021-09-19 22:01:02 · 9483 阅读 · 1 评论 -
windows下事件通知
简单代码实现如下:#pragma once#include<Windows.h>#include<stdio.h>#include<signal.h>class SyncEvent{public: SyncEvent(bool manual_reset = true, bool signaled = false) { handle_ = ::CreateEvent(NULL, manual_reset, signaled, NULL); if原创 2021-09-04 15:25:00 · 377 阅读 · 0 评论 -
类 类模板学习
目录一、定义类模板二、示例2.1 类模板实现Array队列一、定义类模板形式如下:1 template<class 模板参数表>2 class 类名{ 3 // 类定义...... 4 };其中,template 是声明类模板的关键字,表示声明一个模板,模板参数可以是一个,也可以是多个,可以是类型参数,也可以是非类型参数。类型参数由关键字class或typename及其后面的标识符构成。非类型参数由一个普通参数构成,代表模板定义中的一个常量。注意:.原创 2021-08-22 09:56:26 · 257 阅读 · 0 评论 -
C++中回调函数(CallBack)
一、定义回调函数就是一个被作为参数传递的函数。在C语言中,回调函数只能使用函数指针实现,在C++、Python、ECMAScript等更现代的编程语言中还可以使用仿函数或匿名函数。回调函数的使用可以大大提升编程的效率,这使得它在现代编程中被非常多地使用。同时,有一些需求必须要使用回调函数来实现。最著名的回调函数调用有C/C++标准库stdlib.h/cstdlib中的快速排序函数qsort和二分查找函数bsearch中都会要求的一个与strcmp类似的参数,用于设置数据的比较方法。二、示例.原创 2021-08-17 08:09:39 · 3101 阅读 · 0 评论 -
zlib使用gzip / Accept-Encoding和Content-Encoding概要
zlib是个著名的开源解压缩库,gzip是一种压缩文件格式。zlib可以压缩原始数据并输出gzip文件,gzip文件中除了压缩数据外,还有描述这些数据的文件头,所以当原始数据较小时,会出现zlib的压缩输出会比原始数据还大的情况。zlib能使用一个gzip数据头,zlib数据头或者不使用数据头压缩数据。通常情况下,数据压缩使用zlib数据头,因为这提供错误数据检测。当数据不使用数据头写入时,结果是没有任何错误检测的原始DEFLATE数据,那么解压缩软件的调用者不知道压缩数据在什么地方结束。g转载 2021-08-07 00:05:08 · 1386 阅读 · 0 评论 -
C++字符串常见操作函数
字符串分割各种方式总结如下:1)模仿boost库中split函数实现字符分割void SplitFun(const string& str, vector<string>& vec_str, const string& delimiter){ // 找到第一个不是分隔符的位置 string::size_type lastPos = str.find_first_not_of(delimiter, 0); // 以lastPos为起点,找到第一个分隔符所在原创 2021-07-21 09:00:54 · 234 阅读 · 0 评论 -
Cannot assign requested address解决办法
问题原因:TCP/IP的状态图:“Cannot assign requested address.”是由于linux分配的客户端连接端口用尽,无法建立socket连接所致,虽然socket正常关闭,但是端口不是立即释放,而是处于TIME_WAIT状态,默认等待60s后才释放,端口才可以继续使用。在http查询中,需要发送大量的短连接,这样的高并发的场景下,就会出现端口不足,从而抛出Cannot assign requested address的异常。可能解决方法1 --调低time_..转载 2021-07-19 23:50:19 · 36547 阅读 · 0 评论 -
linux和windows sleep函数
1、sleep函数功 能: 执行挂起一段时间 用 法: unsigned sleep(unsigned seconds); 注意: 在windows中使用带上头文件#include <windows.h>;在Linux下,gcc编译器中,使用的头文件因gcc版本的不同而不同#include <unistd.h>; 在windows中,Sleep中的第一个英文字符为大写的"S" ,在linux下不要大写,在标准C中是sleep, 不要大写,简单的说wind原创 2021-07-11 20:12:23 · 2962 阅读 · 1 评论 -
Docker学习总结
以下是docker学习个人总结:原创 2021-07-10 11:14:40 · 146 阅读 · 0 评论 -
资源管理 智能指针
对软件开发人员来说,管理资源时一项基本的任务。大量的资源必须合理分配、使用和归还。主要的资源包括:1、内存(栈、堆);2、访问硬盘或者其他的介质(如网络)上的文件(读/写)所需的文件句柄;3、网络连接(例如:连接服务器、数据库等);4、线程、锁、定时器和事务;5、其他操作系统资源,如Windows操作系统上的GDI句柄。一、资源申请即初始化资源申请即初始化(Resource Acquisition is Initiazation, RAII),该术语也被称为“构造时获得.原创 2021-05-03 23:16:59 · 267 阅读 · 0 评论 -
链表的头插法和尾插法
下面通过图像简要示意链表的头插法和尾插法1、头插法代码示意:#include<stdio.h>#include<stdlib.h>struct stu_node{ int num; struct stu_node *next;};int main(){ struct stu_node *head,*p; int n; head=NULL; scanf("%d",&n); while(n!=0) { p=(struct st原创 2021-05-02 17:36:42 · 498 阅读 · 0 评论 -
shell学习
原创 2021-01-21 23:00:34 · 153 阅读 · 0 评论 -
boost库读写Json字符串
boost库中property_tree0.头文件相关头文件为:#include <boost/property_tree/ptree.hpp>#include <boost/property_tree/json_parser.hpp>using namespace boost::property_tree;1.读Json字符串1.1 读简单值auto description = pt.get<std::string>("descripti原创 2020-11-09 08:27:13 · 1225 阅读 · 0 评论 -
boost::asio的Tcp同步方式
博文部分参考链接:https://www.cnblogs.com/lidabo/p/8317196.htmlBoost.Asio是一个跨平台的网络及底层IO的C++编程库。头文件#include <boost/asio.hpp>命名空间using namespace boost::asio;using boost::asio::ip::tcp;ASIO库能够使用TCP、UDP、ICMP、串口来发送/接收数据,本文档介绍TCP协议的同步读写操作。所有使用asio原创 2020-10-18 21:33:52 · 1133 阅读 · 0 评论 -
Java连接Mongodb详细解析
首先:安装了 Java 环境+MongoDB JDBC 驱动java环境配置不做赘述,可参考链接:http://www.runoob.com/java/java-environment-setup.html#win-install MongoDB JDBC 驱动下载链接:http://central.maven.org/maven2/org/mongodb/mongo-java-dri...原创 2018-09-15 21:07:29 · 12109 阅读 · 7 评论 -
C++中字符串拼接、十六进制转十进制
txt文件如下:文件说明:文件中为十六进制数据。实现:先进行字符串拼接,然后进行十六进制转十进制。字符串拼接代码://字符串拼接 infile>>string1>>string2;string1=string1+string2;将读入字符串分别赋值到string1和string2中,然后进行拼接并赋值到string1。进制转换代码:/...原创 2018-10-05 16:03:11 · 3309 阅读 · 2 评论 -
C++中进行TXT文件的读入、转化和写入
C++环境下如何进行io流读取txt文件,通过string进行接收,并且转化为10进制的数据进行存储。代码如下:#include<fstream>#include<iostream>#include<string>#include <stdio.h>#include <cstdlib>using namespace ...原创 2018-11-08 14:37:14 · 1579 阅读 · 1 评论 -
C中 gets()函数的危险操作
gets()函数的危险操作 分别在window环境和Linux环境中分析1)window环境采用visual studio2017实验:结果:window中直接报错,终止运行。2)Linux环境结果:输入超过定义长度的字符串,gets()函数可以接收、输出,并且检测到堆栈应被破坏原理分析: 当输入的字符串超过了定义的变量后,多出的数...原创 2019-05-16 17:13:00 · 468 阅读 · 0 评论 -
线索二叉树浅析
1、线索二叉树原理 n个结点的二叉链表中含有n+1(2n-(n-1)=n+1)个空指针域。利用二叉链表中的空指针域,存放指向结点在某种遍历次序下的前驱和后继结点的指针(这种附加的指针称为"线索")。例如: 二叉树T有10个结点,其中有11个空指针域(空指针域用"^"表示),这样会造成一定的浪费。建立线索二叉树的规则: (1)如果ptr->lchild为...原创 2019-05-29 15:38:47 · 1856 阅读 · 0 评论 -
VS LNK1168错误 解决办法
错误案例: 这个错误萦绕在我脑中已经很久了,始终没找到 非常好的解决办法,有几种方案可以替代,现列出供学习参考,如果其他大佬有什么更好的办法,尽请不吝赐教。 原因分析: 主要是filename进程已经存在,文件可能正在使用中且其文件句柄已被其他进程锁定,或者你可能没有对该文件或者对其所在的目录或网络共享的写入权限。几种解决方式:1)等待若干时间,进程自动结束。...原创 2019-06-17 13:27:28 · 24610 阅读 · 17 评论 -
计算结构体的大小
转载自:https://blog.youkuaiyun.com/csw_100/article/details/5495309结构体中的成员可以是不同的数据类型,成员按照定义时的顺序依次存储在连续的内存空间。和数组不一样的是,结构体的大小不是所有成员大小简单的相加,需要考虑到系统在存储结构体变量时的地址对齐问题。看下面这样的一个结构体:struct stu1{int i;char c;...转载 2019-07-30 20:04:17 · 163 阅读 · 0 评论 -
删除整数字符串删除k个数后最小的数
题目: 给定一串数字,这串数字有可能大于long的最长长度,譬如192837465,从这串数字中删除k个数字,使得新数字串在所有可能性结果中最小,那么应该删除哪k个数字呢?分析: 采用贪心算法的思想,从字符串组成的数字中的高位开始比较。 例如:k = 6,即需要删除字符串192837465中6个数 分析过程如下: 第一次:9>2, 删除9...原创 2019-09-07 18:21:42 · 1503 阅读 · 0 评论 -
CCF认证2018年3月份 第2道 小球碰撞-JAVA语言编程解析
两面墙之间有n个小球,初始以每单位时间1单位长度向右运动,当小球撞到墙或者两个小球相撞时,小球向反方向运动,速度不变。(各小球初始位置和墙距均为偶数,不存在三个小球同时碰撞的情况)要求: 1.第一行输入三个正整数:小球个数n,墙之间的距离L;时间t;2.第二行输入n个偶数表示小球的起始位置;3.输出经过t时间后各小球的位置程序如下:import java.util.Scan...原创 2018-09-07 20:34:02 · 261 阅读 · 0 评论
分享