自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

joshua

路漫漫其修远兮 吾将上下而求索

  • 博客(21)
  • 收藏
  • 关注

原创 vector类型为结构体,根据结构体成员来删除对应的结点

通过iterator来遍历vector成员用erase删除结点会出现错误, 如下程序:#include#include#includeusing namespace std;struct cuttime{ int index; long begin; long end;};vector vec_cutdata;vector::iterator cutdata_i

2013-09-27 17:12:14 2182

转载 C++ auto_ptr智能指针的详细用法和注意事项

C++ auto_ptr智能指针的详细用法和注意事项C++中指针申请和释放内存通常采用的方式是new和delete。然而标准C++中还有一个强大的模版类就是auto_ptr,它可以在你不用的时候自动帮你释放内存。下面简单说一下用法。用法一:  std::auto_ptrm_example(new MyClass());用法二std::auto_pt

2013-09-17 15:52:42 1067

原创 boost-timer库学习

boost  timer库学习                                                                             timer是一个很小的库,提供简易的度量时间,和进度显示功能,可以用与性能测试等需要计算的任务,对应大多数的情况够用。timer包括三个组件,分别是:计时类timer 、process_tim

2013-09-17 15:49:53 912

原创 智能指针auto_ptr的使用

智能指针auto_ptr的使用 auto_ptr是C++标准库中()为了解决资源泄漏的问题提供的一个智能指针类模板(注意:这只是一种简单的智能指针)auto_ptr的实现原理其实就是RAII,在构造的时候获取资源,在析构的时候释放资源,并进行相关指针操作的重载,使用起来就像普通的指针。std::auto_ptr pa(new ClassA);#include

2013-09-17 15:01:25 792

原创 让CPU占用率曲线听你指挥

问题写一个程序,让用户来决定Windows任务管理器(Task Manager)的CPU占用率。程序越精简越好,计算机语言不限。例如,可以实现下面三种情况:1. CPU的占用率固定在50%,为一条直线;2. CPU的占用率为一条直线,但是具体占用率由命令行参数决定(参数范围1~ 100);3. CPU的占用率状态是一个正弦曲线。分析与解法 有一名学生写了如下的代码:wh

2013-09-13 17:25:48 1921

转载 内存映射文件实现多进程通信

写入内存内核映像#include #include #include using namespace std;int main(int argc,char **argv){ HANDLE hMapFile = CreateFileMapping( INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, 4*1024,

2013-09-13 17:16:18 1530

原创 VC中GetLastError()获取错误信息的使用

在VC中编写应用程序时,经常需要涉及到错误处理问题。许多函数调用只用TRUE和FALSE来表明函数的运行结果。一旦出现错误,MSDN中往往会指出请用GetLastError()函数来获得错误原因。     可问题是,GetLastError()返回的只是一个双字节数值(DWORD)。OH,MY GOD!目前Win32的出错编号已经从0排到11031,而这还不是错误编码的全部。因为错误代码还在不

2013-09-13 17:12:47 1644

转载 windows下进程间通信方式介绍

1 进程与进程通信  进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码、数据以及它可利用的系统资源(如文件、管道等)组成。多进程/多线程是Windows操作系统的一个基本特征。Microsoft Win32应用编程接口(Application Programming Interface, API)提供了大量支持应用程序间数据共享和交换的机制,这些机制行使的活动称为进程

2013-09-06 16:46:52 536

转载 C++指针漂移问题解决方案

C++编程语言虽然功能强大,应用方式灵活,但是在实际编程中同样会出现各种各样的错误。在这里我们将会为大家详细介绍一下有关C++指针漂移的解决方法,希望本文介绍的内容可以帮助大家解决问题。最近我们在工作中碰到一个奇怪的问题,最后确定是多继承引起的C++指针漂移,跟C++对象模型有关。示意如下class A {...};  class B{...};  class AB : public 

2013-09-06 16:43:49 1256

转载 C/C++内存分配

一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(s

2013-09-06 16:42:26 617

原创 C++内存分配的五种方法的区别

在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。   栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。   堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统

2013-09-06 16:39:38 648

转载 三十分钟掌握STL

三十分钟掌握STL 这是本小人书。原名是《using stl》,不知道是谁写的。不过我倒觉得很有趣,所以化了两个晚上把它翻译出来。我没有对翻译出来的内容校验过。如果你没法在三十分钟内觉得有所收获,那么赶紧扔了它。文中我省略了很多东西。心疼那,浪费我两个晚上。译者:karycontact:[email protected]概述STL的一个重要特点是数据结构和算法的分

2013-09-06 16:36:22 660

原创 c++用vector对结构体排序

C++中,当 vector 中的数据类型为基本类型时,我们调用std::sort函数很容易实现 对vector中数据成员的升序或降序排序,然而当vector中的数据类型为自定义结构体类型或者类时,我们可以通过以下两种方法(仅以结构体为例):重载要排序的结构体或类的号,演示代码如下: #include#includeusing namespace std;typedef

2013-09-06 16:32:26 5724

转载 VC++ 6.0 中如何使用 CRT 调试功能来检测内存泄漏

首先,检测内存泄漏的基本工具是调试器和 CRT 调试堆函数。为了使用调试堆函数,必须在要检测内存泄漏和调试的程序中添加下面的语句:#define _CRTDBG_MAP_ALLOC #include #include #include "debug_new.h" MSDN 如是说:“必须保证上面声明的顺序,如果改变了顺序,可能不能正常工作。”至于这是为什

2013-09-06 16:23:00 679

转载 内存泄露检查

介绍: 动态分配、回收内存是c/c++编程语言一个最强的特点,但是中国哲学家孙(sun tzu,我不知道是谁?那位知道?) 指出,最强的同时也是最弱的。这句话对c/c++应用来说非常正确,在内存处理出错的地方通常就是bugs产生的地方。一个最敏感和难检测的bug就是内存泄漏-没有把前边分配的内存成功释放,一个小的内存泄漏可能不需要太注意,但是程序泄漏大块内存,或者渐增式的泄漏内存可能引起的现象

2013-09-06 16:13:33 666

转载 Windows Socket五种I/O模型详解

Winsock 的I/O操作:1、 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序。套接字 默认为阻塞模式。可以通过多线程技术进行处理。 非阻塞模式:执行I/O操作时,Winsock函数会返回并交出控制权。这种模式使用 起来比较复杂,因为函数在没有运行完成就进行返回,会不断地返回 WSAEWOULDBLOCK错误。但功能强大。为了解决这个问题

2013-09-06 16:09:28 1103

原创 ffmpeg基本命令

通用选项-L license-h 帮助-fromats 显示可用的格式,编解码的,协议的-f fmt 强迫采用格式fmt-I filename 输入文件-y 覆盖输出文件-t duration 设置纪录时间 hh:mm:ss[.xxx]格式的记录时间也支持-ss position 搜索到指定的时间 [-]hh:mm:ss[.xxx]的格式也支持-title st

2013-09-06 16:07:35 699

原创 FFMPEG基本命令

通用选项-L license-h 帮助-fromats 显示可用的格式,编解码的,协议的-f fmt 强迫采用格式fmt-I filename 输入文件-y 覆盖输出文件-t duration 设置纪录时间 hh:mm:ss[.xxx]格式的记录时间也支持-ss position 搜索到指定的时间 [-]hh:mm:ss[.xxx]的格式也支持-title st

2013-09-06 16:06:27 816

原创 ffmpeg裁剪合并视频

一 裁剪视频 ffmpeg提供简单的命令参数:ffmpeg -ss START -t DURATION -i INPUT -vcodec copy -acodec copy OUTPUT对上面的命令稍做个解释。-ss 开始时间,如: 00:00:20,表示从20秒开始;-t 时长,如: 00:00:10,表示截取10秒长的视频;-i 输入,后面是空格,紧跟着就是输入

2013-09-06 16:05:13 8680 2

转载 进程与多进程管理的实现方法

进程  进程是当前操作系统下一个被加载到内存的、正在运行的应用程序的实例。每一个进程都是由内核对象和地址空间所组成的,内核对象可以让系统在其内存放有关进程的统计信息并使系统能够以此来管理进程,而地址空间则包括了所有程序模块的代码和数据以及线程堆栈、堆分配空间等动态分配的空间。进程仅仅是一个存在,是不能独自完成任何操作的,必须拥有至少一个在其环境下运行的线程,并由其负责执行在进程地址空间内的

2013-09-06 16:02:56 1974

原创 MFC 中 Tooltip 实现的几种方式

方法一:利用CWnd本身自身支持的tooptip来实现,这种方法适用给控件增加tooltip,非常方便和简单方法如下:1、在窗口中增加消息映射ON_NOTIFY_EX(TTN_NEEDTEXT, 0, SetTipText)SetTipText是个回调函数,名字叫什么无所谓,符合原型就行了,原型下面会说。    2、EnableToolTips(TRUE),使用这个方法调用这个

2013-09-06 16:00:36 1007

空空如也

空空如也

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

TA关注的人

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