随笔分类 - 音/视频
摘要:编写C++中的两个类 一个只能在栈中分配空间 一个只能在堆中分配。 解答:(1)代码如下#include using namespace std; //只能在堆上分配内存 class HeapOnly { public: HeapOnly() { co...
阅读全文
摘要:#include<iostream.h>void main(){char a[]="abc";栈 char b[]="abc";栈 char* c="abc";abc在常量区,c在栈上。char* d="abc"; 编译器可能会将它与c所指向的"abc"优化成一个地方。const char e[]=
阅读全文
摘要:vector - 会自动增长的数组 vector又称为向量数组,他是为了解决程序中定义的数组是不能动态改变大小这个缺点而出现的。一般程序实现是在类创建的时候同时创建一个定长数组,随着数据不断被写入,一旦数组被填满,则重新开辟一块更大的内存区,把原有的数据复制到新的内存区,抛弃原有的内存,如此反复。由
阅读全文
摘要:原文链接: http://blog.csdn.net/liigo/archive/2006/01/17/582231.aspx 本文写给主要工作在Windows操作系统下而又需要开发一些跨平台软件的程序员朋友,以及程序爱好者。 GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基
阅读全文
摘要:1. STL有6种序列容器类型(1)vector它提供对元素的随即访问,在尾部添加和删除元素的时间是固定的,在头部或中部插入和删除元素的复杂度为线性时间。(2)deque在文件中声明。是双端队列,支持随即访问。从deque的开始与末尾位置插入和删除元素的时间是固定的。尽管vector和deque都提
阅读全文
摘要:1. 模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,...
阅读全文
摘要:1.Vector是一个连续内存占用的容器2.每次Insert,都会将插入的对象先析构,然后复制一个副本添加到容器内3.容器的大小先是1,然后是2,然后是4,也可以使用reserve来重新制定队列的长度4.当erase删除一个或者clear之后,容器占用的内存并没有发生变化,但是这可以通过shrink...
阅读全文
摘要:vector是C++标准模版库(STL,Standard Template Library)中的部分内容。之所以认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单的说:vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。使用vector容器之前必须加上头文件:#includ...
阅读全文
摘要:C++的内存划分为栈区、堆区、全局区/静态区、字符串常量和代码区。这里去掉自由存储区,增加了代码区,理由会在下面讲到。栈区:由系统进行内存的管理。说明:主要存放函数的参数以及局部变量。栈区由系统进行内存管理,在函数完成执行,系统自行释放栈区内存,不需要用户管理。整个程序的栈区的大小可以在编译器中由用...
阅读全文
摘要:共有两种库: 一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。 一种是LIB包含函数代码本身,在编译时直接将代码加入程序当中,称为静态链接库static link librar...
阅读全文
摘要:/*//////////////////////////////// template < class InputIterator, class OutputIterator, class UnaryOperator > OutputIterator transform ( InputIterato
阅读全文
摘要:跟上一篇的strcpy_s一样,是新推出的较为安全的strcat函数 strcat_s脱胎于strcat,用于两个字符串的链接,strcat(str1,str2)直接返回新的str1. 但在vs2005后,为了安全起见,重新添加了些功能和api和以前不同。比如strcat_s. 为什么是安全起见呢?
阅读全文
摘要:strcpy_s和strcpy()函数的功能几乎是一样的。strcpy函数,就象gets函数一样,它没有方法来保证有效的缓冲区尺寸,所以它只能假定缓冲足够大来容纳要拷贝的字符串。在程序运行时,这将导致不可预料的行为。用strcpy_s就可以避免这些不可预料的行为。 strcpy_s是strcpy的安
阅读全文
摘要:先上测试代码 运行后 strtok函数在运行时,报堆栈读写冲突问题,后来看到strtok.c源文件里面对字符串的操作如下 函数原理是,在函数执行中,当遇到分隔符的时候,会在原字符串查找到分隔符的位置自动替换成空字符,看来是字符串有问题,strtok()会改字符串内容,char *str = "Hel
阅读全文
摘要:视频的显示和存放原理 对于一个电影,帧是这样来显示的:I B B P。现在我们需要在显示B帧之前知道P帧中的信息。因此,帧可能会按照这样的方式来存储:IPBB。这就是为什么我们会有一个解码时间戳和一个显示时间戳的原因。解码时间戳告诉我们什么时候需要解码,显示时间戳告诉我们什么时候需要显示。所以,在这
阅读全文
摘要:tbn = the time base in AVStream that has come from the container tbc = the time base in AVCodecContext for the codec used for a particular stream tbr
阅读全文
摘要:av_dup_packet函数 av_dup_packet会为destruct指针为av_destruct_packet_nofree的AVPacket新建一个缓冲区,将原有的缓冲区数据拷贝至新缓冲区,置data的值为新缓冲区的地址,同时设置destruct指针为av_destruct_packet
阅读全文
摘要:在多线程编程中,最常用到的就是线程同步问题,前段时间开发地址采集服务器,需要携带经纬度到MapAbc中采集后,返回地址,才可以进行下一条经纬度的采集,因为队列处理和解析不是同一个线程,并且是解析经纬度是异步的操作,所以就涉及到线程同步问题,所以针对这个对ManualResetEvent和AutoRe
阅读全文
摘要:1.由于为了与C语言兼容,字符串字面值与标准库string类型不是同一种类型; 2.以下代码中,cin有几点需要注意:a.读取并忽略开头所有的空白字符(如空格、换行符、制表符);b.读取字符直至再次遇到空白字符,读取终止 3.string的IO操作还有一个就是getline,终止条件就是遇到换行符,
阅读全文
摘要:1.C++基本数据类型:字符型、整型、浮点型等; 2.算术类型如下表,下表只是表示C++要求的最小储存空间,但是一般编译器使用的都比所要求的储存空间大,以前类型所能表示的最大值也因机器的不同而有不同的最大值。 3.字符类型有两种,char和wchar_t,char一般是单个机器字节,wchar_t可
阅读全文