随笔分类 - C++/VC++
摘要:Ffmpeg包是开发有关视频音频软件的一个非常使用的开发包,但因为其是开源的,因而没有关于其详细的介绍和应用实例,在网上有关此包相关具体的应用介绍也不足以起到指引作用,要搞清楚这个包的使用还得靠大家不断的摸索和总结,这里有一个对其中的Libavformat和libavcodec库的一个简单应用的介绍,希望对大家能有点帮助.如果路过的大牛们有研究这一方面的并有一定成果的(就是有具体应用实例的),能不能赏个脸也指导一下小弟,联系:loneghost@sohu.com谢谢~~---------------------------------------------------------Ffmpeg
        阅读全文
            
摘要:最简单的方法,开个O(n)的空间,扫描一遍,吧出现的数的记录下来。再扫描一下找出丢失的数字。时间复杂度O(n)如果不允许开空间:可以排序,然后遍历一遍找出未出现的数。采用基数排序O(d*n),当n<=100000是复杂度 O(7*n)解决O(n),不过破坏了原来的数组不破坏原来数组的方法:如果小于n个数补0 补成n个数。扫描数组,if(a[i]>0)a[a[i]]+=2*n;再扫描一遍 if(a[i]<=n) cout<<i<< " ";else a[i] -= 2*n;//恢复数组O(2*n),不破坏原数组
        阅读全文
            
摘要:在虚拟内存管理的实现中,最关键的就是页面的调入策略和页面的置换算法。 页面的调入策略主要有两种:预先调入策略和页面请求调入策略。由于前者需要对进程的运行过程进行一定量的预测,所以实现起来比较困难和低效,所以经常采用的是后一种策略,即当执行进程所需的某个页面不在内存时,产生缺页中断,再由专门的缺页中断服务程序(ISR)根据进程页表将所需页面调入内存。 当缺页中断服务程序发现,内存中已经没有空闲的物理页面(通常称之为帧)时,就会执行一种页面换出程序,它采取一定的置换算法将某个页面换出到外存的交换(文件)分区。通常,衡量一种页面置换算法性能好坏的指标就是对于大量的页面请求序列,在一定数量的物理帧..
        阅读全文
            
摘要:转摘自:http://blog.csdn.net/hustli/archive/2003/07/02/19358.aspx摘要:虚函数里面有一个很特殊的东东,那就是纯虚函数,关于纯虚函数的问题也是bbs上常见的话题,这里我想对此作一个小小的论述,希望能给初学者一个满意的解释。一、引入原因:1、为了方便使用多态特性,我们常常需要在基类中定义虚拟函数。2、在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身生成对象明显不合常理。为了解决上述问题,引入了纯虚函数的概念,将函数定义为纯虚函数(方法:virtual ReturnType Functio
        阅读全文
            
摘要:C++的四种cast操作符的区别发信站: 水木社区 (Thu Jan 26 21:15:16 2006), 站内声明 by NetMD:并非我的原创,来自互联网,且是两篇帖子的合集,个人觉得这样才比较完备----------------------------------------------------------------------Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意?A:转换的含义是通过改变一个变量的类型为别的类型从而改变该变量的表示方式。为了类型转换一个简单对象为另一个对象
        阅读全文
            
摘要:1 dynamic_cast 与 static_cast 区别2 static,const,int &, int 初始化方式,初始化顺序3 虚函数调用原理,虚函数表多个对象共用一个。4 非虚函数,如何调用的5 拷贝构造函数与赋值构造函数的实现6 纯虚函数如何实现,抽象类能否被实例化,为什么不能实例化。virtual void print()=0; 不能实例化7、static在C和C++里各代表什么含义8、const在C/C++里什么意思9、static 跨文件访问全局变量,多文件访问;extern int i;10、继承:内存中有父类一个对象,每个类都有自己的虚函数表,每个对象有个指针
        阅读全文
            
摘要:http://hi.baidu.com/fly_fireocean/item/0711568aa52f1acf99255ffc邻接链表(Adjacency List)是图的一种链式存储结构,与树型结构中的孩子链表相似。通常邻接链表也称邻接表。1. 邻接表的结点结构边结点结构 邻接表中每个表结点均有两个域: ① 邻接点域adjvex 存放与vi相邻接的顶点vj的序号j。 ② 链域next 将邻接表的所有表结点链在一起。注意: 如果带权图,则在表结点中还应增加一个保存权值等相关信息info。2.邻接表的表示 对于无向图,vi的邻接表中每个表结点都对应于与vi相关联的一条边。因此,将邻接表...
        阅读全文
            
摘要:要求编写一个容器,它可支持两种操作:push()和pop(),push(K)操作可将元素K放入容器,pop()操作可将容器中的中位值弹出。例如:push(1),push(2),push(3)后pop()[输出为2]。解决方法,创建一个最大值优先的优先队列,将其记为左队列ql,创建一个最小值优先的优先队列,将其记为右队列qr,我们规定ql不为空时,ql.top()为中位值,记为mid,对于push(k),如果k>mid,则将k压入右边优先队列qr,如果k<=mid怎将其压入左边优先队列ql,然后将左右两个队列做平衡处理。pop()则只需将ql.top()的值弹出后做平衡处理即可。这种
        阅读全文
            
摘要:原文地址:http://www.cnblogs.com/codingmylife/archive/2012/10/04/2711839.html 主要包括全排列和回溯两类,其中全排列可以递归与非递归,回溯也可以递归与非递归。于是加一起有4种解法。#include <iostream>#include <algorithm>using namespace std;template <size_t N> struct ArraySizeHelper {char _[N];};template <typename T, size_t N> ArrayS
        阅读全文
            
摘要:全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出。首先来看看题目是如何要求的(百度迅雷校招笔试题)。一、字符串的排列用C++写一个函数, 如 Foo(const char *str), 打印出 str 的全排列,如 abc 的全排列: abc, acb, bca, dac, cab, cba一、全排列的递归实现为方便起见,用123来示例下。123的全排列有123、132、213、23
        阅读全文
            
摘要:http://codeforces.com/contest/218/problem/B贪心算法:STL优先队列实现最大堆,最小堆#include<iostream>#include<queue> using namespace std;const int MAX=1001;int a[MAX];int calPrize(int n, int x){ int start=n-x+1; return (start+n)*x/2;} int fun(int n, int m, int pos[]){ priority_queue<int,vector<int>
        阅读全文
            
摘要:今天在写堆和哈夫曼树的ACM题的时候,接触到priority_queue的用法,由于比较函数的难些,请教过队内的红薯和杨大牛后才稍微弄明白些,下面总结如下,首先我是用手写的堆来过题的,其实和照黑书指导上的那个堆的代码差不多。 写完之后就看了下STL里面的priority_queue的用法就开始研究,首先是用了网上找的一个写比较函数的方法是用操作符重载做的。代码如下://比较函数对于结构体struct heapmin{heapmin(int tx){x=tx;};int x;};struct heapmax{heapmax(int tx){x=tx;};int x;};bool operator
        阅读全文
            
摘要://problem description: merge K sorted lists with total N elements//solution: put the front element of each list into a priority queue,// till finish, pop the min value from the priority queue, and enqueue// the next element in corresponding list, delete that element//time complexity:// ...
        阅读全文
            
摘要:这个题目是一个好朋友给我讲的方法,我按照自己的理解,敲出来代码。 所以把算法流程和代码贡献出来,希望和大家共同学习。题目大意:给出一个柱形统计图(histogram), 它的每个项目的宽度是1, 高度和具体问题有关。 现在编程求出在这个柱形图中的最大面积的长方形。例如:7 2 1 4 5 1 3 37表示柱形图有7个数据,分别是 2 1 4 5 1 3 3, 对应的柱形图如下,最后求出来的面积最大的图如右图所示。分析:如果采用枚举的方式,如果当前我们枚举项是 i = 0, 即 height = 2,我们用另外两个变量 j 和k 向左和向右两个方向搜素,找到第一个 小于 height的下标,这样
        阅读全文
            
摘要:在这篇文章里,我将探讨几个和求最大长方形相关的题目,并试图说明如何把一些相对复杂的问题化归成简单的易解的问题。这里的最大,可以指长方形内所有元素之各最大,也可以指面积最大。问题一(最大和子矩阵): 有一个 m x n 的矩阵,矩阵的元素可正可负。请找出该矩阵的一个子矩阵(方块),使得其所有元素之和在所有子矩阵中最大。(问题来源:http://acm.pku.edu.cn/JudgeOnline/problem?id=1050)问题二(最大 0/1 方块): 有一个 m x n 的矩阵,元素为 0 或 1。一个子矩阵,如果它所有的元素都是 0, 或者都是 1,则称其为一个 0-聚类 或 1-聚类
        阅读全文
            
摘要:Section I正确区分不同的查找算法count,find,binary_search,lower_bound,upper_bound,equal_range本文是对Effective STL第45条的一个总结,阐述了各种查找算法的异同以及使用他们的时机。首先可供查找的算法大致有count,find,binary_search,lower_bound,upper_bound,equal_range。带有判别式的如count_if,find_if或者binary_search的派别式版本,其用法大致相同,不影响选择,所以不作考虑。注意这些查找算法需要序列式容器,或者数组。关联容器有相应的同名成
        阅读全文
            
摘要:昨晚除夕夜,没有看春晚,而是一个人在实验室参加了科大ACM的比赛。 一句话总结:完全找虐。哎……刚开始还有点自信的我,被打击了。 让自己明白,我根本不聪明啊。恩,但对于未来,还是要相信自己!用积极乐观的心态 + 勤奋刻苦,去拼搏。 要想达到一定的高度,必须一直勤奋、刻苦,积累。 打击归打击,收获还是有的。第一是,意识到不断的勤奋很重要;第二是,见证了,程序不经常写,很常用的技巧都会陌生……昨天写快排+三次二分都花了很久;而后一道模拟题,BFS+priority_queue,忘记了优先队列的用法……加油。下面,总结一下priority_queue的用法,免得以后又忘记了,还要到处找(C++...
        阅读全文
            
摘要://copyright@ saturnman //updated@ 2011 July #include "stdafx.h" #include "string.h"#include "stdlib.h"int NumberOf1(const char* strN);int PowerBase10(unsigned int n);/////////////////////////////////////////////////////////////////////////////// Find the number of 1 in 
        阅读全文
            
摘要:给九个格子1,2,...9 一共9个数组,每次只能交换9与他直接相邻的数字,计算从一种状态到另外一种状态的最少移动步数。用广搜+康拓展开的方法实现。#include "stdafx.h" #include<iostream> #include<string> #include <vector> #include <math.h>#include <map>#include <queue>using namespace std;const int MAX=400000;long int fac[]={1,
        阅读全文
            
摘要:题目:给出n个互不相同的字符, 并给定它们的相对大小顺序,这样n个字符的所有排列也会有一个顺序.现在任给一个排列,求出在它后面的第i个排列.这是一个典型的康拓展开应用,首先我们先阐述一下什么是康拓展开。(1)康拓展开 所谓康拓展开是指把一个整数X展开成如下形式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[2]*1!+a[1]*0!。(其中,a为整数,并且0<=a[i]<i(1<=i<=n))(2)应用实例 {1,2,3,4,...,n}表示1,2,3,...,n的排列如 {1,2,3} 按从小到大排列一共6个:1
        阅读全文
            
 
                    
                     
                    
                 
                    
                 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号