自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

海阔天空的专栏

C++在路上,不积跬步无以至千里不积小流无以成江河

  • 博客(68)
  • 资源 (14)
  • 收藏
  • 关注

转载 使用_beginthreadex()创建线程

前面一直讲到使用CreateThread来创建线程,那么这章告诉你应该使用_beginthreadex()取代CreateThread()。一、使用_beginthreadex()                    需要的头文件支持#include         // for _beginthread()      需要的设置:ProjectàSetti

2013-09-30 19:13:08 1971

原创 我的华为面试经历——技术服务

9.29号收到华为的录取通知,算是自己的处女面了,忍不住写写自己的面试经历。        华为每年的校招时间都比较固定,九月份的时候,而且流程非常清楚,算是校招的企业中强劲的一支。今年也不例外,从九月初就开始来到学校进行宣讲。       其实做软件的都有这种感觉都想进互联网公司,毕竟华为是属于设备商,所以我在报华为的时候就填了一个技术服务,下面说一下自己的面试经历。1、网上

2013-09-30 09:14:19 26532 2

原创 win32多线程程序设计笔记(第六章下)

接着,我们讲解具体overlap I/O的使用。对于overlapped I/O的讨论,从简单的应用开始,然后再演变到最高级的应用:        激发的文件handles;        激发的Event对象;        异步过程调用(APCs);        I/O completion ports一、激发的文件Handles        

2013-09-28 21:10:27 1231

原创 字符串中单词的个数(状态机的使用)

题目:统计一段由字符和空格组成的字符串中有多少单词分析:面试环节中,考官中意的一道题,之所以问到这个题目,目的是要知道你对状态机了解多少。具体过程                                  从题目上看,如果对一个字符串进行处理,那么可以有下面几种情形:初始状态,字符状态,空格状态,结束状态。那么这几种状态之间应该怎么迁移呢?       1、

2013-09-22 14:42:21 1147

原创 C/C++对文件操作小结

文件的基本概率从文件编码的方式来看,文件可分为二进制码文件和ASCII码文件两种。     二进制文件是按二进制的编码方式来存放文件的。 例如, 数5678的存储形式为: 00010110 00101110只占二个字节。二进制文件虽然也可在屏幕上显示, 但其内容无法读懂。C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。 输入输出字符流的开始和结束只由程序控

2013-09-18 14:46:39 1358

转载 翻转句子中单词的顺序(程序员面试题精选100题)

题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。    例如输入“I am a student.”,则输出“student. a am I”。分析:由于编写字符串相关代码能够反映程序员的编程能力和编程习惯,与字符串相关的问题一直是程序员笔试、面试题的热门题目。本题也曾多次受到包括微软在内的大量公司的青睐。

2013-09-16 17:10:21 843

转载 在字符串中删除特定的字符(程序员面试题精选100题)

题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。分析:这是一道微软面试题。在微软的常见面试题中,与字符串相关的题目占了很大的一部分,因为写程序操作字符串能很好的反映我们的编程基本功。基本思路:在第一个字符串中拿到一个字符,在第二个字符串中

2013-09-16 16:19:00 1264

转载 第一次只出现一次的字符(程序员面试题精选100题)

题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。分析:这道题是2006年google的一道笔试题。方法一:        最直观的想法是从头开始扫描这个字符串中的每个字符。当访问到某字符时拿这个字符和后面的每个字符相比较,如果在后面没有发现重复的字符,则该字符就是只出现一次的字符。如果字符串有n个字符,每个字符可能与后面的O(n)个字符相

2013-09-16 15:49:25 3009 2

转载 对称子字符串的最大长度(程序员面试题精选100题)

题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。分析:可能很多人都写过判断一个字符串是不是对称的函数,这个题目可以看成是该函数的加强版。引子:判断字符串是否对称                要判断一个字符串是不是对称的,不是一件很难的事情。我们可以先得到字符串首尾

2013-09-16 09:18:26 1463

原创 win32多线程程序设计笔记(第六章上)

我们知道当程序调用I/O设备处理一些事情时,让主程序停下来干等I/O的完成是没有效率的。。对这个问题有下面几种解决方法:方法一:使用另一个线程进行I/O。问题是在主线程中操控多个线程,如何设置同步机制、如何处理错误情况都是非常复杂麻烦的。方法二:使用overlapped I/O(就是所谓的异步asynchronous I/O,第四章讲到了同步机制),你可以让这些I/O操作并行处理。

2013-09-15 18:54:17 1008

原创 win32多线程程序设计笔记(第五章)

前面章节介绍了线程创建等过程,现在的问题是:如何在某个线程内终止另外一个正在运行的线程?windows核心编程中提到终止运行线程的方法:       1)线程函数自己返回;       2)线程通过调用ExitThread函数“杀死”自己,该函数将终止线程的运行并导致操作系统清理该线程使用的所有操作系统资源,但是使用的C/C++资源不会被销毁(慎用);       3)调用

2013-09-15 17:13:29 1106

原创 win32多线程程序设计笔记(第四章下)

上一笔记讲了同步机制中的临界区域(Critical Sections)、互斥器(Mutexes),下面介绍同步机制中的另外两种。信号量(Semaphores)举个例子:        现在有人要租车,接待他的代理人发现还有3辆车可以用,但正在给他办理手续的时候发现还有三个人也在做同样的动作。现在,就是有四个人想租三辆车。        我们写个程序解决租车问题,方法

2013-09-14 15:34:10 810

原创 win32多线程程序设计笔记(第四章上)

前面已经介绍了线程的创建、销毁过程,如何判断一个线程是否结束;但是撰写多线程程序的一个挑战性问题就是:如何让一个线程和另外一个线程合作。        在同一时间段会存在多个线程,当这些线程同时存取同一数据时,就会有问题。就像在超市储物品一样,来的时候物品箱是空,转身拿物品准备储的时候,发现物品箱已被占用了。这时,物品箱就是我所说的同一数据,人指的就是线程了。        线程之间的

2013-09-14 11:16:16 1131

原创 字符串循环移位

字符串循环移位,要考虑移位的位数是否超过了字符串的长度。代码://循环左移n位void loopmove1(char* str,int n){ if(NULL == str) return; int len = strlen(str); int num = n % len; for(int i = 0;i < n

2013-09-12 20:24:33 1020

原创 整型与字符型之间转化

整数转化为字符串1、可以使用itoa函数(注意,这个函数时在stdlib库中)char *itoa(int value, char *string, int radix);      value: 被转换的整数      string: 转换后储存的字符数组      radix: 转换进制数,如2,8,10,16 进制等#include #include

2013-09-12 17:08:06 1770

转载 查找算法(顺序查找、二分法查找、二叉树查找、hash查找)

查找功能是数据处理的一个基本功能。数据查找并不复杂,但是如何实现数据又快又好地查找呢?前人在实践中积累的一些方法,值得我们好好学些一下。我们假定查找的数据唯一存在,数组中没有重复的数据存在。(1)顺序查找(普通的数据查找)                  设想有一个1M的数据,我们如何在里面找到我们想要的那个数据。此时数据本身没有特征,所以我们需要的那个数据可能出现在数组的各个位

2013-09-12 15:49:28 11822 1

原创 win32多线程程序设计笔记(第三章)

一、复习第二章在第二章中,讲到了两种等待线程的技术:        1)使用Sleep()函数——问题是你不可能事先知道什么事情要等待多久        2)使用busy loop,通过不断地调用GetExitCodeThread()这个函数来判断一个线程是否还在执行——问题是使用这个方法,必须持续不断的调用GetExitCodeThread(),直到其结果不再是STILL_A

2013-09-10 19:19:31 1012

原创 win32多线程程序设计笔记(第二章)

第二章线程的第一次接触,主要讲了如何创建线程以及需要注意的几点。一、创建线程                   与调用函数的过程类似;线程只不过用CreateThread的API将函数封装起来,并产生一个与主程序同时执行的程序来调用被封装的函数。HANDLE hThread = CreateThread (             LPSECURITY_ATTRI

2013-09-10 17:39:51 1062

原创 归并排序

归并排序 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。1. 首先考虑将两个有序数列合并的过程:      只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。void MergeArray(int

2013-09-09 16:14:01 854

原创 选择排序(直接选择、堆排序)

直接选择排序 (不稳定)                        排序过程:     1 、首先在所有数据中经过 n-1次比较选出最小的数,把它与第 1个数据交换,       2、然后在其余的数据内选出排序码最小的数,与第 2个数据交换...... 依次类推,直到所有数据排完为止。         在第i 趟排序中选出最小关键字的数据,需要做 n-i次比较。复杂度 

2013-09-09 15:27:42 3144

原创 插入排序(直接插入排序、希尔排序)

直接插入排序                      基本思想:     假设待排序的数存放在数组arr[1...n]中。初始时,arr[1]自成1个有序区,无序区为arr[2...n]。从i=2起直至i=n为止,依次将arr[i]插入当前的有序区arr[1..i-1]中,生成含n个记录的有序区。算法复杂度:     对于具有n个记录的文件,要进行n-1次排序

2013-09-09 11:00:42 816

原创 数组指针与指针数组

数组指针、指针数组,看起来很迷惑人,但也还要理解、要记住。数组指针1、定义:     数组指针: 指向数组首元素的地址的指针,其本质就是指针;      int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度;2、理解例如:{int a[4][5];

2013-09-05 16:11:50 635

原创 sizeof的使用

很快就要找工作了,大家都埋头在啃程序员面试宝典,突然发现sizeof大有研究,平时分配对象内存的时候也用到,但是发现还有很多不会的地方,不多说,下面简单介绍一下我总结的。sizeof:求对象或类型所占的内存字节数1、一般(32位机器),char型占1个字节,int型占4个字节,float占4个字节,double型占8个字节,string占4个字节2、指针

2013-09-05 16:05:13 569

原创 const限定符的作用

const限定符的作用;const与#define的不同

2013-09-05 15:53:57 1933

转载 C/C++中的运算符优先级总结

1、C语言中的运算符说明运算符结合性初等运算符() [] -> .->单目运算符! ~ ++ -- - (类型) * & sizeof算术运算符* / %->算术运算符+ -->移位运算符>->

2013-09-05 15:50:44 701

转载 定义与声明的区别

《C++Primer》第四版 2.3.5节中这么说到:①变量定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。②变量声明:用于向程序表明变量的类型和名字。③定义也是声明:当定义变量时我们声明了它的类型和名字。④extern关键字:通过使用extern关键字声明变量名而不定义它。 1.声明的时候可以定义也可以不定义。ex

2013-09-05 15:44:12 772

原创 基于live555的视频直播

基于live555的视频直播一直很想做流媒体的直播,最近花时间看了有关live555的有关代码,这里隆重的推荐两篇:   http://blog.csdn.net/nkmnkm(道长的文章,分析的很不错)   http://blog.csdn.net/gavinr(这里面的文章容易让人理清思路)其实刚入门的时候,看这两篇帖子也比较吃力,我们先看看live

2013-03-21 21:42:14 8633 6

原创 采集音频和摄像头视频并实时H264编码及AAC编码

采集音视频实时264编码和aac编码             经常有人做视频的监控或者流媒体的实时传输,其中就会有包括音频以及视频的采集、编码、传输等过程,对于实时性的应用就需要将采集得到的每一帧进行实时的编码输出。        这里我使用了directshow来采集音频和视频,当然使用directshow也有一定得问题就是它不能跨平台,对于跨平台的可以使用opencv采集视频,open

2013-03-20 14:04:42 3768

原创 opencv采集视频/摄像头数据并保存

纯粹是自娱自乐,并没有对opencv的使用进行深入的学习,用opencv打开视频文件或者打开摄像头采集,然后保存,这也是最基础的东西。一、安装配置环境                                                                                          VS2008下安装配置opencv,2005、2010的步骤应

2012-12-29 13:06:14 9539 1

原创 ubuntu下编译ffmpeg

版本ubuntu10.10 (2012/12/15),参考了网上了一些编译方法1、下载git,根据官方文档,下载编译ffmpeg需要git实现,所以下载git,命令:​sudo apt-get install git git-core更新git到最新版本,命令:​git clone git://git.kernel.org/pub/scm/git/git.git​查看安

2012-12-15 20:19:50 6889 1

翻译 ffmpeg入门学习——文档8:软件缩放

指导8:软件缩放软件缩放库libswscale近来ffmpeg添加了新的接口:libswscale来处理图像缩放。但是在前面我们使用img_convert来把RGB转换成YUV12,我们现在使用新的接口。新接口更加标准和快速,而且我相信里面有了MMX优化代码。换句话说,它是做缩放更好的方式。我们将用来缩放的基本函数是sws_scale。但一开始,我们必需建立一个SwsCon

2012-12-15 15:14:37 1250

翻译 ffmpeg入门学习——文档7:快进快退

指导7:快进快退处理快进快退命令现在我们来为我们的播放器加入一些快进和快退的功能,因为如果你不能全局搜索一部电影是很让人讨厌的。同时,这将告诉你av_seek_frame函数是多么容易使用。我们将在电影播放中使用左方向键和右方向键来表示向后和向前一小段,使用向上和向下键来表示向前和向后一大段。这里一小段是10秒,一大段是60秒。所以我们需要设置我们的主循环来捕捉键盘事件。然而当

2012-12-15 15:13:54 1854

翻译 ffmpeg入门学习——文档6:同步音频

指导6:同步音频同步音频现在我们已经有了一个比较像样的播放器。所以让我们看一下还有哪些零碎的东西没处理。上次,我们掩饰了一点同步问题,也就是同步音频到视频而不是其它的同 步方式。我们将采用和视频一样的方式:做一个内部视频时钟来记录视频线程播放了多久,然后同步音频到上面去。后面我们也来看一下如何推而广之把音频和视频 都同步到外部时钟。生成一个视频时钟

2012-12-15 15:11:23 1648

翻译 ffmpeg入门学习——文档5:同步视频

指导5:同步视频如何同步视频前面整个的一段时间,我们有了一个几乎无用的电影播放器。当然,它能播放视频,也能播放音频,但是它还不能被称为一部电影。那么我们还要做什么呢?PTS和DTS幸运的是,音频和视频流都有一些关于以多快速度和什么时间来播放它们的信息在里面。音频流有采样,视频流有每秒的帧率。然而,如果我们只是简单的通过数帧 和乘以帧率

2012-12-15 15:10:29 1828

翻译 ffmpeg入门学习——文档4:创建线程

指导4:创建线程1、概要上一次我们使用SDL的函数来达到支持音频播放的效果。每当SDL需要音频时它会启动一个线程来调用我们提供的回调函数。现在我们对视频进行同样的处理。这样会使程序更加模块化和跟容易协调工作 - 尤其是当我们想往代码里面加入同步功能。那么我们要从哪里开始呢?首先我们注意到我们的主函数处理太多东西了:它运行着事件循环,读取包和处理视频解码。所以我们将把这些东西分成几个

2012-12-14 19:32:33 4698

翻译 ffmpeg入门学习——文档3:播放声音

指导3:播放声音现在我们要来播放声音。SDL也为我们准备了输出声音的方法。函数SDL_OpenAudio()本身就是用来打开声音设备的。它使用一个叫做SDL_AudioSpec结构体作为参数,这个结构体中包含了我们将要输出的音频的所有信息。在我们展示如何建立之前,让我们先解释一下电脑是如何处理音频的。数字音频是由一长串的样本流组成的。每个样本表示声音波形中的一个值。

2012-12-14 19:31:09 3703

翻译 ffmpeg入门学习——文档2:输出到屏幕

指导2:输出到屏幕SDL和视频为了在屏幕上显示,我们将使用SDL.SDL是Simple Direct Layer的缩写。它是一个出色的多媒体库,适用于多平台,并且被用在许多工程中。你可以从它的官方网站的网址http://www.libsdl.org/上来得到这个库的源代码或者如果有可能的话你可以直接下载开发包到你的操作系统中。按照这个指导,你将需要 编译这个库。

2012-12-14 19:29:44 2219

翻译 ffmpeg入门学习——文档1:制作屏幕录像

如何基于FFMPEG和SDL写一个少于1000行代码的视频播放器FFMPEG是一个很好的库,可以用来创建视频应用或者生成特定的工具。FFMPEG几乎为你把所有的繁重工作都做了,比如解码、编码、复用和解复用。这使得多媒体应用程序变得容易编写。它是一个简单的,用C编写的,快速的并且能够解码几乎所有你能用到的格式,当然也包括编码多种格式。唯一的问题是它的文档基本上是没

2012-12-14 19:23:48 2976 1

原创 ffmpeg入门——文档0

ffmpeg入门学习,同时利用ffmpeg和sdl制作一个简单的视频播放器环境:window7+vs2008(2012.12.13)1、一个文档对应一个压缩包,每个压缩包解压后都是可以直接编译运行的,ffmpeg和sdl的库文件等都是已经编译的2、原始程序来源于网上很火的《如何基于FFMPEG和SDL写一个少于1000行代码的视频播放器》,而且是在linux下的编译

2012-12-14 19:00:07 3280

转载 Makefile 经典教程

最近抽空学习了一下makefile,因为在linux下运行程序的时候经常直接使用一个make命令就搞定了,所以觉得有必要学习一下makefile的知识。以下内容转载自网络:Makefile经典教程发布人:来自网络    发布时间:2010-6-24         什么是makefile ?或许很多 Winodws的程序员都不知道这个东西,因为那些 Windows的ID

2012-11-04 15:05:52 745

群面经典案例分析

群面经典案例分析,包含一些经典的案例以及一些公司群面出现的例子,并给出了一些分析,对就业过程中的群面有帮助

2013-09-28

状态机的使用

状态机是计算机网络通信的重要内容,想要对tcp-ip协议栈加深了解的朋友尤其需要重点掌握,状态机的使用,统计字符串中单词的个数

2013-09-22

C/C++读写文件操作

熟悉对文件的读写操作,主要是C/C++,程序代码完整,可以编译运行。

2013-09-18

ffmpeg入门学习2

ffmpeg的入门学习资料,基于ffmpeg和sdl制作视频播放器,学习文档请参考我的博客,压缩包中包括tutorial01-07,都是可以在windows下编译运行的。 压缩包有点大,所以分成了两部分,这是第二部分的

2012-12-14

ffmpeg入门学习1

ffmpeg的入门学习资料,基于ffmpeg和sdl制作视频播放器,学习文档请参考我的博客,压缩包中包括tutorial01-07,都是可以在windows下编译运行的。

2012-12-14

SDL学习教程

SDL入门教程,由浅入深很容易上手,另外压缩包中还有SDL代码、开发库、运行库

2012-12-03

ffmpeg学习资料合集

ffmpeg资料大合集,学习过程中的积累,也有网上下的资料,不管你是新手还是老手,有了这个资料学习ffmpeg就够了。亲们,给分吧!

2012-12-01

语音视频聊天系统(大集合)

有关于语音视频聊天系统的大合集,有MFC、java、C#的,还有模仿qq界面的,亲们,赶紧下,分数给我吧

2012-11-18

算法导论第三版(附件习题答案)

算法导论第三版,附加习题答案,程序猿必备书籍

2012-10-28

静态链接库例子(lib)

一个很简单的静态链接库的例子,介绍静态链接库的使用,可以同时根据我的博文来看

2012-10-26

深入浅出MFC(附所有代码)

深入浅出MFC,第二版,学习MFC必看书籍之一,书中的代码都有

2012-10-21

live555开源代码

最新版本的live555开源代码,跟老版本相比增加了H264部分等等

2012-08-03

omnimeeting

Omnimeeting是一个多平台的C++ 视频会议程序,能通过RTSP协议做到实时的摄像/音频流传输,支持人脸识别和跟踪提供I转换/发送全方位图像的API。 omnimeeting提供的软件包包括omnistuff、streaming、gui三个主要文件和数据示例文件。

2012-05-18

空空如也

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

TA关注的人

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