![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 92
追风弧箭
这个作者很懒,什么都没留下…
展开
-
Microsoft CryptoAPI加密技术
Microsoft CryptoAPI加密技术在这个信息爆炸的时代,我们不得不对信息的安全提高警惕。加密作为保障数据信息安全的一种方式,越来越受到人们的关注。下面,我将把自己对Microsoft CryptoAPI的一些肤浅的理解与大家共享,有什么不妥之处望不吝赐教。一、 加密方法:当初,计算机的研究就是为了破解德国人的密码,人们并没有想到计算机给今天带来的信息革命。随转载 2016-10-26 16:50:31 · 3926 阅读 · 0 评论 -
C++ 多线程调用Python脚本
由于Python解释器有全局解释所GIL的原因,导致在同一时刻只能有一个线程拥有解释器,所以在C++多线程调用python脚本时,需要控制GIL,线程获取GIL。在主线程中初始化Python解释器环境,代码如下: { Py_Initialize(); //初始化Python环境 if ( !Py_IsInitialized() ) //检测是否初始化成功 { r原创 2016-12-06 17:44:37 · 11128 阅读 · 3 评论 -
快速排序算法
快速排序快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 实现方法: 1、挖坑法 void quick_sort(int a[], int low, int hi原创 2018-01-31 15:37:58 · 210 阅读 · 0 评论 -
冒泡排序
1、冒泡排序对相邻的元素进行两两比较,顺序相反则进行交换,这样,每一趟会将最小或最大的元素“浮”到顶端,最终达到完全有序 冒泡排序算法的运作如下: . 比较相邻的元素。如果第一个比第二个大就交换它们。 - 对每一对相邻的元素做同样的工作,从开始第一对到结尾的最后一对。这时候最后的元素应该会是最大的数 - 针对所有的元素重复以上步骤,除了最后一个。 - 持续每次对越来越少的元素重复上原创 2018-01-31 15:11:20 · 233 阅读 · 0 评论 -
简单选择排序
简单选择排序每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序类的序列末尾,直到全部排列结束。 (1)从待排序序列中,找到关键字最小的元素; (2)如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换; (3)从余下的 N - 1 个元素中,找出关键字最小的元素,重复(1)、(2)步,直到排序结束。 C++实现代码如下:void simple_sort(int原创 2018-01-31 16:05:47 · 212 阅读 · 0 评论 -
直接插入排序
直接插入排序直接插入排序是一种简单的插入排序法,所以适用于少量数据的排序。 基本思路:把待排序的纪录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的纪录插入完为止,得到一个新的有序序列。 基本步骤: 1.从第一个元素开始,该元素可以认为已经被排序 2.取出下一个元素,在已经排序的元素序列中从后向前扫描 3.如果该元素(已排序)大于新元素,将该元素移到下一位置 4.原创 2018-01-31 16:54:43 · 253 阅读 · 0 评论 -
C++杂记
1、C++类的默认拷贝构造函数有什么缺点?C++默认的拷贝构造函数是进行浅拷贝,也就是说拷贝复制的对象和原来的对象共享一块内存地址,当其中一个对象被销毁,那么另外一个对象所指向的内存就变成了空的了。class A{ A(int x):size(x),data(new char[x]) { } ~A(){ delete []data; ...原创 2018-02-08 17:10:43 · 344 阅读 · 0 评论 -
C++面试
1、TCP/UDP的区别,如何实现拥塞控制,如何实现可靠传输?udp的应用?区别: 1. TCP是面向连接;UDP是无连接的。 2. TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保 证可靠交付 3. TCP对系统资源要求多,UDP较少。 4. 每个TCP连接都是点对点的。UDP支持一对一、一对多...原创 2018-03-13 10:40:56 · 282 阅读 · 0 评论 -
C++程序崩溃时,生成dmp调试文件
包含如下头文件 和 引用Lib库#include #pragma comment(lib, "dbghelp.lib")定义LONG WINAPI MyUnhandledFilter(struct _EXCEPTION_POINTERS *lpExceptionInfo){ LONG ret = EXCEPTION_EXECUTE_HANDLER; TCHAR szFil原创 2017-03-08 11:00:37 · 2517 阅读 · 0 评论 -
V8嵌入指南
中英文地址:https://github.com/Chunlin-Li/Chunlin-Li.github.io/blob/master/blogs/javascript/V8_Embedder's_Guide_CHS.md如果你已经阅读了入门指南, 一定知道 V8 是一个独立运行的虚拟机, 其中有些关键性概念比如: handles, scopes 和 contexts. 本文将深入讨论这些概翻译 2017-02-24 10:47:47 · 1929 阅读 · 0 评论 -
Javascript V8 引擎
1、暴露C++函数接口供js脚本调用: 假设有如下C++接口void Print(const v8::FunctionCallbackInfo& args) { bool first = true; for (int i = 0; i < args.Length(); i++) { v8::HandleScope handle_scope(args.GetIsolate(原创 2017-02-23 18:42:13 · 980 阅读 · 0 评论 -
值得推荐的C/C++框架和库
值得推荐的C/C++框架和库【本文系外部转贴,原文地址:http://coolshell.info/c/c++/2014/12/13/c-open-project.htm】留作存档下次造轮子前先看看现有的轮子吧值得学习的C语言开源项目- 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客转载 2016-03-15 09:56:00 · 405 阅读 · 0 评论 -
BMP文件
1. BMP文件组成 BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。 2. BMP文件头 BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。 其结构定义如下: typedef struct tagBITMAPFILEHEADER { WORDbfType; // 位图文件的类型,必转载 2015-10-27 09:57:57 · 297 阅读 · 0 评论 -
Opengl教程
OpenGL入门学习说起编程作图,大概还有很多人想起TC的#include 吧?但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率、16色来做吗?显然是不行的。本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物。OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。1、与C语言紧密结合转载 2015-10-27 10:16:47 · 1364 阅读 · 0 评论 -
gRPC 实现多线程异步服务端
首先需要编译gRPC ,编译参考 原文 http://blog.csdn.net/cupidove/article/details/53334920获取gRPC源码gRPC是开源框架,项目代码在github上,所以首先要安装github。github安装后,在指定文件夹中,执行git命令就可以获取gRPC的所有源码。git clone https://git原创 2016-12-29 21:58:16 · 24490 阅读 · 6 评论 -
HP-Socket
源码下载地址: https://github.com/ldcsaa/HP-SocketHP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/C++、C#、Delphi、E(易语言)、Java、Python 等编程语言接口。HP-Socket 对通转载 2016-12-19 10:21:41 · 761 阅读 · 0 评论 -
Boost::Python库编译
1、下载 https://sourceforge.net/projects/boost/files/boost/1.62.0/ 解压 到路径 比如:C:\Users\jd\Desktop\boost_1_62_02、cd到解压路径 执行bootstrap.bat,会在boost根目录生成 b2.exe 、bjam.exe 、project-config.jam 、bootstrap.log四原创 2017-01-05 10:54:08 · 1815 阅读 · 0 评论 -
Boost::Python学习笔记
原文地址: http://edyfox.codecarver.org/html/boost_python.htmlBoost.Python 是 Boost 中的一个组件,使用它能够大大简化用 C++ 为 Python 写扩展库的步骤,提高开发效率,虽然目前它对 Python 嵌入 C++ 的支持还不是很多,但也能提供很大方便。另外,华宇煜也编写了一份关于Boost.Python转载 2017-01-05 15:17:51 · 837 阅读 · 0 评论 -
Protobuf编译及学习
protobuf源码C++版本 可以从protobuf-3.10下载, 解压进入cmake目录然后使用cmake生成项目解决方案编译。examples目录包含一些例子,可以学习。要使用Protobuf 需要先去了解protobuf的语法。中文版: http://colobu.com/2015/01/07/Protobuf-language-guide/ 官方指南地址 : https原创 2017-01-05 16:33:47 · 888 阅读 · 0 评论 -
VS2015编译google V8引擎
编译v8需要开启vpn,需要下载代码和依赖项。google 编译文档 https://github.com/v8/v8/wiki/Building%20from%20Source1、安装git2、安装depot_tools,安装方法参照 https://www.chromium.org/developers/how-tos/install-depot-tools,注意下载解压的原创 2017-01-03 16:34:43 · 3874 阅读 · 5 评论 -
C++11 学习笔记-类型推导
auto类型推导 auto关键字主要有两种用途: - 在变量声明时根据初始化列表表达式自动推断该变量的类型 - 声明函数时作为函数返回值的占位符 注意事项: - 使用auto声明的变量必须马上初始化 - 函数参数和模板参数不能被声明为auto - 对于数组类型,auto关键字会推导为指针类型,除非被声明为引用 - 在结构体中,auto不能用于非静态变量struct{...原创 2018-03-14 17:19:38 · 306 阅读 · 0 评论