自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

转载 C++句柄和指针的区别

句柄实际上是一种指向某种资源的指针,但与指针又有所不同:指针对应一个数据在内存中的地址,得到了指针就可以自由地修改该数据。Windows并不希望一般程序员修改其内部数据结构,因为这样不太安全。所以Windows给每个使用GlobalAlloc等函数声明地内存区域指定一个句柄(本质上仍是一个指针,但不要直接操作它),平时你只是在调用API函数利用这个句柄来说明要操作哪段内存。当你需要对某个内存进行直

2017-09-10 10:17:00 430

转载 流水作业调度(动态规划)

【问题描述】n个作业{0,1,2,...n}在2台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是现在M1上加工,后在M2上加工,在两台机器上加工的时间分别为ai和bi。【目标】确定这n个作业的加工顺序,使得从第一台作业开始加工,到最后一个作业完成加工所需时间最少。【算法描述】流水作业调度问题的Johnson法则(1)令(2)将N1中作业依 t[i,1]的非

2017-09-03 14:14:03 1237

原创 二分搜索(vector动态输入)

二分搜缩简单,注意vector动态输入#include#includeusing namespace std;int BinarySearch(vector&a,int x){ if (a.size() == 0) return -1; int len = a.size(); int left = 0; int right = len - 1; while (left <=

2017-09-03 10:36:45 335

原创 整数划分问题

为求不同的划分,则将划分的元素按照从大到小排序(全局序约束去除了对称性带来的重复)设n的最大加数1、q(n,1)=12、q(n,m)=q(n,n),m>n3、q(n,n)=q(n,n-1)+14、q(n,m)=q(n,m-1)+q(n-m,m)对于4的解释:a。划分中包含m的情况,即{m,{x1,x2,...,xi}},其中{x1,x2,...,xi}和为n-m,因此在

2017-09-03 09:37:05 210

转载 排列问题

题目】设计一个递归算法生成n个元素{r1,r2,…,rn}的全排列。【算法讲解】设R={r1,r2,…,rn}是要进行排列的n个元素,Ri=R-{ri}。集合X中元素的全排列记为perm(X)。(ri)perm(X)表示在全排列perm(X)的每一个排列前加上前缀得到的排列。R的全排列可归纳定义如下: 当n=1时,perm(R)=(r),其中r是集合R中唯一的元素;当n

2017-09-03 09:16:18 493

原创 字符串的排列

题目:输入一个字符串,打印出该字符串中字符的所有排列。例:输入字符串 abc       输出:abc acb bac bca cab cba思路:把一个字符串分为两部分,第一部分为其第一个字符,第二部分为后面所有字符。然后把第一个字符逐一和它后面的字符交换。递归思路。#includeusing namespace std;#includevoid

2017-08-31 11:32:48 180

转载 左值与右值区别

定义:左值与右值的定义在于一个赋值等号,赋值等号左边成为左值,等号右边成为右值左值(L-value):表示存储在计算机内存的对象,可寻址,相当于地址值右值(R-value):代表的为真实值,可读,即数据值因为左值是一个地址值,因此可以对左值进行赋值操作,而右值本身就是同一个数据值,就不存在对一个数据值就行赋值的操作。例如:int a,b;a=5;//为合法的操

2017-08-27 14:12:02 2537

原创 排序算法:归并排序

【介绍】归并排序是一个分治算法。其将两个(或两个以上)有序表合并成一个新的有序表,即把待排序列分为若干有序子序列,再把有序子序列合并为整体有序序列。【分析】将待排序序列R[0...n-1]看成是n个长度为1的有序序列,将相邻的有序表成对归并,得到n/2个长度为2的有序表;将这些有序序列再次归并,得到n/4个长度为4的有序序列;如此反复下去,最后得到一个长度为n的有序序列具体要做

2017-08-19 20:25:30 237

原创 排序算法:快速排序

【介绍】       通过一趟排序将待排序的数据分割成独立两部分,其中一部分的所有数据都比另外一部分所有数据小,然后再根据此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,直到整个数据变得有序。【分析】       快速排序是找出一个元素为基准,然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准值右边的元素值都不小于基准值,如此作为基准的元素则调整到了排序后的

2017-08-19 16:49:05 192

原创 排序算法:冒泡排序

【介绍】重复走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。【分析】1、比较相邻的元素,如果第一个比第二个大,就交换他们两个。2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。最后的元素会是最大的数。3、针对所有元素重复以上步骤,除了最后一个。4、持续每次对越来

2017-08-19 15:12:49 244

原创 排序算法:插入排序

【介绍】每次从无序表中取出第一个元素,把它插入到有序表中合适的位置,是有序表仍然有序。【分析】第一趟比较前两个数,然后把第二个数按大小插入到有序表中;第二趟把第三个数据与前两个数从前向后扫描,把第三个数按大下坡插入到有序表中;一次下去,进行了(n-1)趟扫描以后就完成了整个排序过程【代码】#includeusing namespace std;void print

2017-08-18 13:57:59 580

原创 排序算法:选择排序

【介绍】要排序的一组数,选出最小,或者最大的一个数与第1个位置的数交换;然后在剩下的数当中再找最小,或者最大的与第2个位置的数交换。以此类推,直到第n-1个元素与第n个元素比较为止。【分析】第一趟,从n个记录中找出关键码最小的记录与第一个记录交换;第二趟,从第二个记录开始的n-1个记录中再选出关键码最小的记录与第二个记录交换;以此类推。。。第i趟,则从第i个记录开始

2017-08-18 12:24:40 226

转载 深入理解C++中的mutable关键字

mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。  在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。  我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面

2017-07-07 15:35:31 203

原创 初始化类成员的两种方式

在初始化类成员试,有如下两种选择:1、类构造函数的成员初始化列表2、构造函数的函数体以上两种方法的区别:成员初始化列表使用初始化的方式来为数据成员指定初值,而构造函数的函数体是通过赋值的方式来给数据成员指定初值。即成员初始化列表实在数据成员定义同时赋初值,而构造函数的函数体是采用先定义后赋值的方式来做。功能上区别:1.初始化一个引用成员变量2.初始化一个

2017-07-07 15:23:47 830

转载 inline内联函数

转自http://bbs.csdn.net/topics/310059268评论介绍内联函数之前,有必要介绍一下预处理宏。内联函数的功能和预处理宏的功能相似。相信大家都用过预处理宏,我们会经常定义一些宏,如#define TABLE_COMP(x) ((x)>0?(x):0)   就定义了一个宏。  为什么要使用宏呢?因为函数的调用必须要将程序执行的顺序转移到函数所存放

2017-07-06 16:43:29 259

原创 云计算

云计算的核心思想,将大量用网络连接的计算资源统一管理和调度,构成一个计算资源池向用户按需服务。云计算是网格计算、分布式计算、并行计算、效用计算、网格存储、虚拟化技术、负载均衡等传统计算机技术和网络技术发展融合的产物。旨在通过把多个成本相对较低的计算实体整合成一个具有强大计算能力的完美系统,并借助Saas、PaaS、IaaS、MSP等先进的商业模式把这强大的计算能力分布到终端用户手中。

2017-06-23 11:33:54 494

转载 [C++]关于头文件中的防卫式声明(#ifndef...#pragma once)

转自http://www.cnblogs.com/xyq10612/p/5910933.html[C++]关于头文件中的防卫式声明(#ifndef...#pragma once)大家知道,我们写.h文件时,通常会加上防卫式声明,有以下两种方式:1. 宏定义?1234#ifndef _FILENAME_#

2017-04-20 08:53:43 460

原创 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-03-23 15:47:46 232

原创 C++ 共用体:union

union主要是将各种类型的数据存放在一段固定的存储器中,存储器的大小由union中需要最大存储器的数据类型决定。如:union student{char ***;int age;long number;double score;};其中long、double需要16个字节,而char只需要1个字节,因此该共用体占用16个字节,union的关键是不同的数据类型共

2017-03-23 15:39:17 377

原创 操作系统必知必会(进程)

进程代表一个运行中的程序,是资源分配与调度的基本单位。进程有三大特性:1、独立性:独立的资源,私有的地址空间,进程间互不影响。2、动态性:进程具有生命周期。3、并发性:多进程可以在单核CPU上并发运行。操作系统的设计,因此可以归结为三点:(1)以多进程形式,允许多个任务同时运行;(2)以多线程形式,允许单个任务分成不同的部分运行;(3)提供协调机制,

2017-03-23 11:38:42 380

原创 Virtualbox下Ubuntu扩充硬容量

本来以为22G的虚拟硬盘容量已经足够,事实证明我太天真。这是篇硬盘扩容的文章,从22G扩到40G,小白文。Virtualbox4.0以后可以用虚拟光驱来扩充硬盘,相比于原始的硬盘挂载方法要简单不少。First:关闭虚拟机。首先在在你的安装路径中找到 VBoxMange.exe。在windows的dos命令窗口进入VBoxMange.exe所在目录。Secon

2016-11-18 09:33:46 458

转载 libnetfilter_queue快速入门

http://chyeh.logdown.com/posts/91924-libnefilter-queueqi-bu-zou以上为原博客网址。根据[netfilter的官方網站(http://netfilter.org/libnetfilter_queue這個套件需要跑在linux), kernel 2.6.14之後的版本,且需要libnfnetlink此套件。套件版

2016-11-16 21:45:15 4369 1

原创 客户端定时读取文件发送到服务器存到文件中(二、Crontab定时执行文件传输程序)

本来打算在客户端和服务器之间建立长连接,然后用定时器来实现定时发送文件,之后发现比较麻烦,朋友推荐用linux自带的crontab,我就试了一下,挺好用的。cron是一个Linux下的后台进程,用来定期的执行一些任务。我用的是Ubuntu,所有命令只能保证在Ubuntu下有效,但其他系统应该也差不多。目前的ubuntu一般自带crontab,关于怎么启动和配置网上资料有一堆

2016-11-16 21:27:32 1614

原创 客户端定时读取文件发送到服务器存到文件中(一、Unixsocket编程文件传输)

因为项目需要,客户端需要定时向服务器更新本地信息(注意网上大多可参考的是服务器发往客户端的,实际上区别不太大)。我是编程小白,所以利用简单的socket编程和linux自带的定时发送应用crontab来实现。废话不多说,上源码。 //// Created by harold on 16-11-15.//#include #include #include #incl

2016-11-16 20:59:53 858

转载 BPI-R1 刷 Openwrt 路由(一)

因为打算用香蕉派(BPI-R1)试一试脱机下载,在网上查资料知道Openwrt支持脱机下载,且同时支持BT。参考网上的教程:http://forum.godpub.com/thread-72-1-3.html同时自己总结了些经验。烧录系统与M1不同的是,R1用的是MicroSD(TF)卡,这点很好,比用SD卡带个大尾巴优雅多了。因为是开源路由器,所以装个啥Ope

2016-11-07 22:27:04 1784

原创 BT源码学习(一)

由于做项目的需要,打算设计边缘路由器的协作缓存,考虑BT+路由器脱机下载来实现。最近开始看BT源码。BT的最初的源码使用python所写,目前已经有了各种版本,包括C++,Java,和易语言等等。在BT的代码中,主要功能有命令模式和图形界面模式两种执行方式,但其最后的执行核心功能的diamond是相同的,区别在于,传参使用的是命令行还是图形界面。BT客户端核心工作过程:1、

2016-11-04 10:47:34 2120

空空如也

空空如也

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

TA关注的人

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