- 博客(65)
- 资源 (4)
- 收藏
- 关注
原创 深入应用C++11 笔记---异步操作 (九)
深入应用C++11 笔记—异步操作 (九)异步操作C++11 提供了异步操作相关的类: * std::future 作为异步结果的传输通道,用于获取线程函数的的返回值; * std::promise用于包装一个值,将数据和future绑定起来,方便线程赋值; * std::package_task将函数和future绑定起来,以便异步调用。1.1 获取线程函数返回值的...
2018-07-05 18:33:13
687
原创 深入应用C++11 笔记---条件变量 (八)
深入应用C++11 笔记(八)—条件变量 +原子变量+call_once/once_flag条件变量 条件变量是C++11 提供的另外一种用于等待的同步机制,它能阻塞一个或多个线程,直到收到另外一个线程发出的通知或者超时,才会唤醒当前阻塞的线程。条件变量需要和互斥量配合起来用。condition_variable,配合std::unique_lock\#inc...
2018-07-03 16:44:34
620
原创 深入应用C++11 笔记---互斥量 (七)
深入应用C++11 笔记—互斥量 (七)互斥量互斥量是一种同步原语,是一种线程同步的手段,用来保护多线程同时访问共享数据。C++11中提供如下4种语义的互斥量(mutex):std::mutex:独占的互斥量,不能递归使用std::timed_ mutex:带超时的独占互斥量,不能递归使用std::recursive_mutex:递归互斥量,不带超时功能std::recu...
2018-07-03 13:06:32
495
原创 深入应用C++11 笔记---多线程 (六)
C++11 多线程1. 线程的创建使用线程函数或者函数对象,并且可以同时制定线程函数的参数#include<thread>void func(){/*do something*/}int main(){ std::thread t(func); t.join();//阻塞线程,直到函数执行结束 //t.detach(); 将线程和线程对象分离...
2018-07-03 08:56:51
439
原创 深入应用C++11 笔记---智能指针 (五)
深入应用C++11 笔记 (五)第二章 C++11 解决内存泄漏的问题 在C++中解决内存泄漏的有效方法是使用智能指针(Smart Pointer)。智能指针和普通指针的用法类似,只是不需要手动释放内存,而是通过智能指针自己管理内存释放。 智能指针是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保在离开指针所在作用域时,自动正确的销毁动态分配的对象,防止内...
2018-07-03 08:53:47
518
原创 abort()、exit()、atexit使用
abort()、exit()、atexit\atexit使用1. abort()立即终止当前进程,产生异常程序终止进程终止时不会销毁任何对象示例:/* abort example */#include <stdio.h> /* fopen, fputs, fclose, stderr */#include <stdlib.h> ...
2018-06-08 11:12:22
28532
1
原创 深入应用C++11 笔记(四)
深入应用C++11 笔记(四)第一章 程序简洁之道1.8 tupe元组构造tuple //头文件为: <tuple> 使用make_tuple 构造一个tuplechar* sendPack;int nSendSize;tuple<const char*, int> tp = make_tuple(sendPack, nSendSize...
2018-05-05 14:58:04
601
原创 使用WebBrowser控件实现打印 去掉 页眉和页脚
使用WebBrowser控件实现打印 去掉 页眉和页脚方法1:先调用Web.ExecWB(8,1) 打印页面设置 ,将页眉页脚等设置为空在调用打印Web.ExecWB(6,2) 打印 //ExecWB 不同参数效果如下:WebBrowser.ExecWB(1,1) 打开 Web.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口 Web.ExecWB(...
2018-04-21 11:12:19
2959
原创 mfc webbrowser控件使用方法
mfc webbrowser控件使用方法插入预览界面的dialog插入Dialog资源后,设计如下:右键,插入Activex控件找到Web Browser控件:将该控件拉伸布局好,然后右键添加变量变量类型自己输入,将会自动生成。给预览界面的Dialog增加初始化函数在该虚函数里面增加初始化内容,也就是需要预览的内容;COleVariant v...
2018-03-28 16:19:59
8289
原创 深入应用C++11 笔记 (三)
深入应用C++11 笔记 (三)第一章 程序简洁之道1.5 std:function可调用对象是一个函数指针是一个具有operator()成员函数的类对象(仿函数)是一个可被转换为函数指针的类对象是一个类成员(函数)指针void func(void){//...}struct Foo{void operator()(void){ //.
2018-01-31 14:32:00
383
原创 深入应用C++11 笔记 (二)
深入应用C++11 笔记 (二)第一章 程序简洁之道1.3 初始化列表给类添加一个std::initializer_list构造函数,它将拥有任意长度初始化的能力。class Foo{public:Foo(std::initializer_list) {}};Foo foo = { 1,2,3,4,5 };//OK使用initializer_list来接收
2018-01-25 16:07:33
505
原创 深入C++11 笔记
深入应用C++11 笔记 (一)第一章 程序简洁之道1.1 类型推导auto类型推导 (auto–> 类型指示符 type-specifier)auto x=5; //OK:x-->intauto pi=new auto(1); //OK:pi-->int*const auto *v=&x,u=6; //OK:v-->const
2018-01-16 15:06:14
425
原创 Centos 安装mysql问题解决
Centos 安装mysql问题解决一、正常安装我们使用YUM源安装MySql,所以在安装前需要做一下准备工作:查看下最新的mysql版本 (不需要点击下载)下载mysql源安装包,从官网可以看到目前(2017.10.23)最新版本是mysql57-community-release-el7-11.noarch.rpm。wget http://dev.mysql.com/get/mysql57-
2017-10-23 20:19:17
664
原创 测试代码所用时间
测试程序运行时间及效率(微·秒级别)一、关于输出使用OutputDebugString输出这种方法经常用于调试程序,测试发现,如果没有用debugview去捕获输出日志的话,此时OutputDebugString语句花费的时间要比有捕获时候小。(大概少了0.03毫秒)说明用OutputDebugString输出日志对程序性能影响很小很小输出到文件中这种方法一般为程序的输出日志,便于保存和日后查看
2017-09-29 17:13:07
701
原创 DLL中的回调函数实现
DLL中的回调函数实现DLL文件中存放的是各类程序的函数实现过程,当程序需要调用函数时需要先载入DLL,然后取得函数地址,最后进行调用。但是有时候我们需要DLL和程序进行通信,将应用程序的某些功能提供给DLL使用,这时就可以使用回调函数。 比如应用程序A调用动态链接库D,同时需要将D中的一些日志信息反馈给A进行处理。这时可以在A中设置写日志的回调函数提供给DLL。一、调用程序中操作应用程序提
2017-09-27 22:58:33
6075
原创 VS2015设置DLL和LIB的输出目录
VS2015设置DLL和LIB的输出目录DLL设置输出目录工程点击右键–>属性–>链接器–>常规–>输出文件工程点击右键Configuration Properties–>Linker–>General–>Output File 默认设置,一般为:$(OutDir)$(TargetName)$(TargetExt) 相对路径的起点为xxx.vcxproj 文件所在的目录lib设置输出目录
2017-09-16 20:23:25
10140
1
转载 SQL查询语句总结
SQL查询语句总结一、基本查询查询所有列select * from emp;查询指定列select empmo,ename,mgr from emp;select distinct mgr from emp; 只显示结果不同的项查询指定行select * form emp where job='clerk';使用算术表达式select ename,sal*13+nvl(comm,0) fr
2017-08-17 18:17:19
471
原创 指针数组和数组指针
指针数组和数组指针一、概念指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针 数组指针:a pointer to an array,即指向数组的指针例子说明int *a[4] //指针数组 表示数组a中的元素都为int型指针//元素表示:*a[i] *(a[i])是一样的,[]优先级高于*int (*a)[4] //数组指针 表示指向数组a的指针二
2017-08-09 18:15:03
849
原创 后缀子串排序
后缀子串排序 xcyk–>wwm data:2017/07/29 21:18题目描述:对于一个字符串,将其后缀子串进行排序,例如grain其子串有:grain rain ain in n然后对各子串按字典顺序排序,即: ain,grain,in,n,rain输入:每个案例为一行字符串。输出:将子串排序输出样例输入:grain样例输出:aingraininnrain#include
2017-07-29 21:20:42
544
原创 进程、线程间通信机制
进程、线程间通信机制1. 管道(pipe)管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程。2. 有名管道(named pipe)有名管道也是半双工的通信方式,但是它允许无亲缘关系的进程间通信。3. 信号量(semophore)信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其
2017-07-25 16:28:11
995
转载 C++ 11 可变模板参数详解
C++ 11 可变模板参数详解1. 概述 可变模板参数(variadic templates)是C++ 11新增的最强大的特性之一,它对参数进行高度泛化,它能表示0到任意个数、任意类型的参数。2. 可变模板参数的展开 可变参数模板和普遍模板的语义是一样的,只是写法上稍有区别,声明可变参数模板时需要在typename或class后面带上省略号“…”。例如://template<class.
2017-06-29 15:24:48
5987
1
原创 windows 安装Beautiful Soup
windows 安装Beautiful Soup下载最新版本的Beautiful Soup解决下载的压缩包,并进入。例如我是在H盘解压的。 H:\beautifulsoup4-4.6.0>运行python setup.py build运行python setup.py install测试是否安装成功from bs4 import BeautifulSoup
2017-06-28 14:36:45
1032
原创 Python 3.6打包成EXE可执行程序
Python 3.6打包成EXE可执行程序下载pyinstaller python 3.6 已经自己安装了pip,所以只需要执行 pip install pyinstaller就可以了打包程序进入到你你需要打包的目录;比如我在H:\xcyk开始打包,执行pyinstaller xxx.py我们发现,竟然报错!!!,然后去官网看,说不支持python3.6打包解决pyinstaller 暂时
2017-06-27 13:12:48
64304
2
转载 sprintf与sscanf函数总结
转载地址:http://www.cnblogs.com/Anker/p/3351168.html1、前言 我们经常涉及到数字与字符串之间的转换,例如将32位无符号整数的ip地址转换为点分十进制的ip地址字符串,或者反过来。从给定的字符串中提取相关内容,例如给定一个地址:http://www.bokeyuan.cn:2345,我们要从地址中提出协议,主机地址和端口号。之前对字符
2017-06-15 11:35:20
434
原创 LibXL库使用详解---增删查改(篇二)
LibXL库使用详解—增删查改(篇二)1. 将数据存储到execl表格中 程序中索引是从0开始,excel中是从1开始bool myinit(){ Book *book = xlCreateBook(); if (!book) { return false; } Sheet *sheet = book->addSheet(L"Myshe
2017-06-14 16:27:50
8790
4
原创 线程和同步
线程和同步1. 多线程作用提高应用程序响应。利用多线程编程并不一定能加快程序运行的速度,其目的是拥有更加良好的程序响应。例如在一个图形界面执行一个操作的同时启动另一个。使多CPU系统更加有效。改善程序结构。多线程程序比单线程程序更能适应用户需求的变更。占用更小的系统资源。线程的数据结构简单,停止、运行速度快,进程是线程的靠山,是车间,线程是小组,活动方便。进程任务大、信息多,将它细分为线程后
2017-06-09 15:19:40
499
原创 VS 2015配置OpenCV3.2编译环境
VS 2015配置OpenCV3.2编译环境1. 准备工作从官网下载OpenCV3.2。下载后的文件如下图:点击下载的文件,进行安装; 3. 安装好后,目录如下所示:主目录 build包含OpenCV的相关库文件,sources是OpenCV的源代码和demo示范源码build目录文件如下:没有X86文件夹了,好像不能进行32位的编译了。2. 计算机环境变量配置鼠标右击此电脑,
2017-06-05 20:12:18
852
原创 搜索算法(篇二)
搜索算法(篇二)1. 局部搜索算法的统一框架 局部搜索算法是对一类算法的统称,符合其框架的算法很多,比如搜索算法(篇一) 中提到的爬山法、模拟退火法和禁忌搜索算法都属于局部搜索算法。尽管各个算法在优化过程中的细节存在差异,但在优化流程上呈现出很大的共性。我们可以将局部搜索算法的统一框架描述为:算法从一个或若干个初始解出发,在算法参数控制下由当前状态的邻域中产生若干个候选解,并以某种策略在候选解
2017-06-04 22:21:09
15399
1
原创 LibXL库使用详解(篇一)
LibXL库使用详解(篇一)LibXL可以不依赖EXCEL读取XLS和XLSX文件。包括设置对齐方式、字体、颜色等格式。支持C, C++, C#,Python等语言。并且支持多个平台windows、Linux、Mac等。
2017-06-02 17:02:55
58199
原创 搜索算法(篇一)
局部搜索算法简介 局部搜索算法是一类可以有效解决优化问题的通用算法。它的基本原理是在临近解中迭代,使目标函数逐步优化,直至不能再优化为止。
2017-05-30 14:37:22
27671
原创 C++ STL总结
概念 STL(Standard Template Library),即标准模板库,它可被容纳于C++标准程序库(C++ Standard Library)中。是ANSI/ISO C++标准中最新的也是极具革命性的一部分。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软件的可
2017-05-23 14:41:49
436
转载 局部搜索算法详解
1.局部搜索通常考察一个算法的性能通常用局部搜索能力和全局收敛能力这两个指标。局部搜索是指能够无穷接近最优解的能力,而全局收敛能力是指找到全局最优解所在大致位置的能力。局部搜索能力和全局搜索能力,缺一不可。向最优解的导向,对于任何智能算法的性能都是很重要的。 定义:局部搜索是解决最优化问题的一种启发式算法。对于某些计算起来非常复杂的最优化问题,比如各种NP完全问题,要找到最优解需要的时间随问题规模
2017-05-19 09:35:02
46982
3
转载 cin深入分析(下) – cin的错误处理
cin深入分析(下) – cin的错误处理深入了解cin错误处理机制,深入了解cin.clear/cin.ignore/cin.good/cin.fail等函数。
2017-05-08 20:02:24
659
转载 cin深入分析(上)
cin深入分析(上)C++的输出和输入是用“流”(stream)的方式实现的,在定义流对象时,系统会在内存中开辟一段缓冲区,用来暂存输入输出流的数据。输入结束条件 :遇到Enter、Space、Tab键。程序1 参数输入错误问题: int number; int number1; cout << "please input number:" << endl;
2017-05-08 14:56:09
455
原创 套接字的I/O模型(三)
completionport模型假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,可以达到最佳的系统性能。从本质上说,完成端口模型要求创建一个Windows完成端口对象,该对象通过指定数量的线程,对重叠I/O请求进行管理,以便为已经完成的重叠I/O请求提供服务。
2017-04-19 09:10:24
519
原创 套接字的I/O模型(二)
套接字的I/O模型(二)overlapped模型 相比于其他的I/O模型,重叠I/O(Overlapped I/O)模型使应用程序能达到更佳的系统性能。重叠模型的基本设计原理是:让应用程序使用重叠的数据结构,一次投递一个或多个Winsock I/O请求。针对那些提交的请求,在它们完成之后,应用程序可以为它们提供服务。Windows重叠I/O机制可通过ReadFile和WriteFile两个函数
2017-04-12 16:13:59
537
C++ 线程池示例,VS2015编译通过
2017-10-31
魔影工厂转换器
2014-12-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人