- 博客(33)
- 资源 (8)
- 收藏
- 关注
原创 C++11 原生字符串
转载:https://blog.csdn.net/K346K346/article/details/820248081.基本概念与作用原生字符串(Raw String)指不进行转义“所见即所得”的字符串。很多编程语言早已支持原生字符串,如C#、Python、Shell等。C++作为一门高级程序设计语言,自然不能自甘落后,从C++11开始,C++也开始支持原生字符串。很多时候,当我们需要一...
2019-10-30 22:52:04 1882
原创 C++11 右值引用、完美转发
右值引用的目的主要是为了是减少内存拷贝,优化性能示例1// threadtest.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"// 右值引用,完美转发#include <iostream>#include <vector>#include <cstring>using namespace std...
2019-10-30 15:57:41 191
原创 C++11 shared_ptr(智能指针)详解
shared_ptr为共享指针,意味我们共同指向一块空间;里面采用引用计数,当有别的shared_ptr指向我这块空间时,就增加引用计数,当引用计数减为0的时候,才释放这块空间。要确保用 new 动态分配的内存空间在程序的各条执行路径都能被释放是一件麻烦的事情。C++11 模板库的 <memory> 头文件中定义的智能指针,即 shared _ptr 模板,就是用来部分解决这个问...
2019-10-30 12:48:55 542
原创 C++ 智能指针-原理和简单实现
C++的内存管理是个难题,容易出现内存泄漏、内存越界、指针非空内存已删除等种种问题,这些问题一旦出现,轻则程序占用内存越来越大,重则直接崩溃1.在动态内存管理中,如果new上一块空间,但是没有delete,就会产生内存泄露的问题。2.但是有时候,我们new了,也delete了,但是还会出现问题。例如在new和delete之间调用了某个抛异常的函数,就有可能导致没有执行delete。3....
2019-10-30 11:18:33 193
原创 C++ 等待定时器内核对象
可等待定时器对象是Windows操作系统的一种同步对象,当设定的期限到了时,对象被置为signaled状态。可创建两种可等待定时器对象: 手工重置(manual-reset):保持signaled状态直至调用SetWaitableTimer函数设置了新的期限。 同步(synchronization):保持signaled状态直至一个线程在该对象上完成了等待操作。 两种...
2019-10-30 10:25:46 415
原创 C++ 互斥器内核对象,使用C++11的mutex
互斥器内核对象 多个线程访问同一资源时,为了保证数据的一致性,最简单的方式就是使用 mutex(互斥锁)。 互斥器保证线程拥有对单个资源的互斥访问权。互斥对象类似于关键代码区,但它是一个内核对象。 互斥器不同于其他内核对象,它有一个“线程所有权”的概念。它如果被某个线程等待成功,就属于该线程。 互斥器的使用规则如下:1. 如果...
2019-10-30 09:49:35 559
原创 C++ 信号量内核对象
信号量内核对象 信号量用来对资源进行计数。它包含两个32位值,一个表示能够使用的最大资源数量,一个表示当前可用的资源数量。 信号量的使用规则如下:1. 如果当前资源数量大于0,发出信号量信号2. 如果当前资源数量是0,不发出信号量信号3. 不允许当前资源数量为负值4. 当前资源数量不能大于最大信号数量通...
2019-10-29 23:43:58 219
原创 C++ 事件内核对象
事件内核对象包括人工重置的事件和自动重置的事件。人工重置事件:当人工重置事件得到通知时,等待该事件的所有线程成为可调度线程;它没有成功等待的副作用自动重置事件:当自动重置事件得到通知时,等待该事件的线程中只有一个变为可调度线程。其成功等待的副作用是该事件对象自动重置为未通知状态。事件内核对象通过createevent创建,初始可以是通知或未通知状态,setevent将事件改...
2019-10-29 18:06:13 385
原创 C++ 线程内核对象状态
线程内核对象 当线程正在运行时,线程内核对象处于未通知状态。当线程停止运行时,就处于已通知状态。可以通过等待线程来检查线程是否仍然运行。 无成功等待的副作用。// 使用beginThread创建一个线程,等待线程退出#include <process.h>#include <windows.h>#include <iostrea...
2019-10-29 17:18:20 214
原创 C++ 进程内核对象信号状态
进程内核对象当进程正在运行时,进程内核对象处于无信号状态。当进程停止运行时,进程内核对象处于有信号状态。可以通过等待进程来检查进程是否仍然运行。无成功等待的副作用。示例:https://blog.csdn.net/qq_24127015/article/details/85334680// startprocess.cpp : 定义控制台应用程序的入口点。// ...
2019-10-29 17:16:42 262
原创 C++ 使用_beginthreadex创建线程、线程句柄(等待线程关闭)、线程id的作用(发送线程消息)
_beginthreadexc语言库 process.h 中的函数, 用来创建一个线程 unsignedlong_beginthreadex( void*security,//安全属性,为NULL时表示默认安全性 unsignedstack_size,//线程的堆栈大小,一般默认为0 ...
2019-10-29 16:01:54 12250
原创 C++11 thread 2.线程的构造函数
default (1) thread() noexcept; initialization (2) template <class Fn, class... Args>explicit thread (Fn&& fn, Args&&... args); copy [deleted] (3) ...
2019-10-29 14:32:58 2193 1
原创 C++11 thread 1.线程的创建和参数的传递
std::thread头文件:<thread>C++11表示各个执行线程的类,执行线程是指令序列,可以在多线程环境中与其他此类序列同时执行,同时共享相同的地址空间。初始化的线程对象代表执行中的活动线程; 这样的线程对象是可连接的,并且具有唯一的线程ID。默认构造(未初始化)的线程对象不可连接,并且其线程ID对于所有不可连接的线程都是通用的。如果从中移出可连接线程...
2019-10-29 13:38:44 3398
原创 一文读懂一台计算机是如何把数据发送给另一台计算机的(转)
前言天各一方的两台计算机是如何通信的呢?在成千上万的计算机中,为什么一台计算机能够准确着寻找到另外一台计算机,并且把数据发送给它呢?可能很多人都听说过网络通信的 5 层模型,但是可能并不是很清楚为什么需要五层模型,五层模型负责的任务也有可能经常混淆。下面是网络通信的五层模型说实话,五层模型的具体内容还是极其复杂的,不过今天这篇文章,我将用最简洁的模式,通过网络通信的五层模型来讲解一...
2019-10-24 12:33:18 364
原创 C++ 读写文件
一、读文件std::string GetData(){ifstream fin(GetProgramDir() + "\\configure.dat");string s;fin >> s;fin.close();return s;}一般情况下读文件需要用try catch,这里不需要使用,如果文件不存在返回的是空字符串。二、写文件std::string...
2019-10-23 16:44:55 365
原创 常用函数
utils.h#ifndef _UTILS_H_#define _UTILS_H_#include <string>#include <list>#include <vector>#include <windows.h>//导出函数#ifdef UTILS_EXPORTS#define UTILS_API __declspec...
2019-10-23 16:05:25 164
原创 C C 获取文件大小
C++中获取文件大小的几种途径汇总~ 今天在编写小程序的时候,需要获取一个未读取的文件大小,想到文件获取的几种方式,这里总结一下,以方便以后查看学习。 在win32程序中,我们可以通过C++和C中的几个常用函数就可以做到哦~ 1、 _stat 结构体 该结构体为Linux系统调用函数,其他的函数还有fstat,lstat,就不一一列举了,童鞋们可以谷歌之或者到MSDN上仔...
2019-10-23 15:52:11 302
原创 Python 9 函数
函数的定义:函数的组成:定义和调用函数# 函数名:1. 名字最好能体现函数的功能,一般用小写字母和单下划线、数字等组合# 2. 不可与内置函数重名(内置函数不需要定义即可直接使用)def math(x):# 参数:根据函数功能,括号里可以有多个参数,也可以不带参数,命名规则与函数名相同# 规范:括号是英文括号,后面的冒号不能丢 y = 3x ...
2019-10-22 23:08:41 3531
Python 8 编程思维,如何解决问题
知识学完就忘:我的经验是:忘了就忘了吧,无所谓。等到要用的时候“临时抱佛脚”也是行得通的,毕竟编程是“开卷”的,你可以随时查阅。究其原因,我们学编程是为了获得一门实用的技能。因此,所有的编程知识并不是要靠死记硬背来【记住】,而是自己真正吸收,学会【怎么用】。有同学可能会问,既然要学会【怎么用】,不先掌握知识,那怎么可能用得起来呢?这里要纠正一个误区:在编程学习中,【...
2019-10-22 14:05:17 308 1
原创 Python 合并两个列表并排序
list1 = [91, 95, 97, 99] list2 = [92, 93, 96, 98]# 把 A 组成绩赋值给一个新列表,用来存合并的成绩——这个细节要注意!list3 =list1list3.extend(list2)print(list3)list3.sort()print(list3)...
2019-10-22 13:54:28 6980 1
原创 Python 6 循环break,continu语句pass,else
break语句:在这里,if...break的意思是如果满足了某一个条件,就提前结束循环。记住,这个只能在循环内部使用。while True: password=input('请用户输入密码:') if password == '小龙女': break;print('通过啦')运行结果:continue语句continue的意思...
2019-10-22 12:54:53 237
原创 Python 5 循环:for循环,while循环,range函数,
for循环for i in [1,2,3,4,5]: print(i)运行结果:#有一群数字在排队办业务,也就是列表[1,2,3,4,5]#它们中的每一个被叫到号的时候(for i in),就轮流进去一个空房间办业务#每一个数字进去房间之后,都对计算机说:“喂,我要办这个业务:帮忙把我自己打印出来”,也就是print(i)#然后计算机忠实的为每一个数字提供...
2019-10-22 12:40:34 667
原创 Python 4 字典
如果不想口算,我们可以用len()函数来得出一个列表或者字典的长度(元素个数),括号里放列表或字典名称。#直接运行代码即可students = ['小明','小红','小刚']scores = {'小明':95,'小红':90,'小刚':90}print(len(students))print(len(scores))运行结果:这里需要强调的是,字典中的键具备唯一性,...
2019-10-22 10:37:49 217
原创 Python 3 列表
#直接运行代码即可students = ['党志文', '浦欣然', '罗鸿朗', '姜信然', '居俊德', '宿鸿福', '张成和', '林景辉', '戴英华', '马鸿宝', '郑翰音', '厉和煦', '钟英纵', '卢信然', '任正真', '翟彭勃', '蒋华清', '双英朗', '金文柏', '饶永思', '堵宏盛', '濮嘉澍', '戈睿慈', '邰子默', '于斯年', '扈...
2019-10-22 10:02:48 217
原创 qt qtableview排序
用QT写了一个小工具,主要是对Excel中大量的数据进行计算和显示。写了有一段时间,然后断断续续的做一些修改和完善。因为要显示的数据有多列,很自然的会想到要能够对显示的数据进行排序。如果直接操作model里的数据,不太方便,因为最好是能由用户自己选择按哪一列进行排序。如果通过信号槽机制,也不是很方便。然后找到QTableView下有一个setSortingEnabled()的函数。在将该函...
2019-10-15 10:26:59 3566 1
原创 C getchar 统计输入的行数,单词数,字符数
#include <stdio.h>#include <stdio.h>/* copy input to output; 1st version *///getchar()是stdio.h中的库函数,它的作用是从stdin流中读入一个字符,也就是说,如果stdin有数据的话不用输入它就可以直接读取了,//第一次调用getchar()时,确实需要人工的输入,但是如果...
2019-10-14 11:48:39 1127
原创 C printf函数
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <stdio.h>//printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出//信息。在编写程序时经常会用到此函数。函数的原型为://int printf(const char *format, ...)...
2019-10-14 11:28:24 232
原创 qt 栅格布局
简述QGridLayout:格栅布局,也被称作网格布局(多行多列)。栅格布局将位于其中的窗口部件放入一个网状的栅格之中。QGridLayout需要将提供给它的空间划分成的行和列,并把每个窗口部件插入并管理到正确的单元格。 栅格布局是这样工作的:它计算了位于其中的空间,然后将它们合理的划分成若干个行(row)和列(column),并把每个由它管理的窗口部件放置在合适的单元之中,这里所指的...
2019-10-12 14:18:50 1418
原创 C++ 四字节数组转int
#include <iostream>#include <vector>using namespace std;int main(){ vector<char> buf({ 0x01,0x00,0x00,0x00,0x0A,0x01,0x00,0x00 }); int d1, d2; memcpy(&d1, &buf[0], 4)...
2019-10-10 16:31:21 2041 1
原创 Qt QLineSeries class QXYSeries Class QAbstractSeries Class
QLineSeries 继承自QXYSeries,QXYSeries继承自QAbstractSeriesThe QLineSeries class presents data in line charts.A line chart is used to show information as a series of data points connected by straight lin...
2019-10-10 13:07:33 1163
原创 Qt QChart class
The QChart class manages the graphical representation of the chart's series, legends, and axesQChart类管理图表的系列,图例和轴的图形表示QChart is a QGraphicsWidget that you can show in a QGraphicsScene. It manages ...
2019-10-10 11:46:51 423
原创 Qt QChartView class
QChartView是一个可以显示图表的独立窗口部件。头文件:#include <QChartView>继承:QGraphicsView公开类型:enumRubberBand { NoRubberBand, VerticalRubberBand, HorizontalRubberBand, RectangleRubberBand }该枚举描述了可以应用于矩形缩放区...
2019-10-10 10:51:32 798
ProcessMonitor(1)
2019-04-15
duilib开机引导页
2019-03-12
DuiLib_Ultimate 加载资源文件三种方法.zip
2019-03-06
DuiLib_Ultimate加载资源.zip
2019-03-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人