自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (3)
  • 收藏
  • 关注

转载 sprintf用法解析

http://www.programfan.com/blog/article.asp?id=12763在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。sprintf 是个变参函数,定义如下

2014-01-07 16:59:18 610

转载 scanf、sscanf和sscanf_s

http://blog.csdn.net/shellching/article/details/4958518在使用VS2005编译一个程序时,出现了很多警告,说是用的函数是不安全的,应当使用安全版本,即函数名称增加“_s”的版本。  警告内容: warning C4996: 'sscanf': This function or variable may be unsafe. Co

2014-01-07 16:52:09 729

原创 fscanf和fgets

函数名: fscanf功 能: 从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。这与fgets有区别,fgets遇到空格不结束。用法:1int fscanf(FILE*stream, char*format,[argument...]);FILE *stream

2014-01-07 16:21:38 1422

转载 sscanf函数与sscanf_s函数

来源http://www.cnblogs.com/kex1n/archive/2011/06/09/2076501.html#include 定义函数 int sscanf (const char *str,const char * format,........);函数说明  sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考s

2014-01-06 17:19:14 815

转载 01背包

01背包问题总结 一 问题描述:     有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。    所谓01背包,表示每一个物品只有一个,要么装入,要么不装入。二 解决方案:   考虑使用dp问题 求解,定义一个递归式 opt[i][v] 表示前i个物品,在背包容量大小为v的情况下,最大的装载量。   

2014-01-04 19:04:24 705

转载 蜂窝小区最短距离的坐标系解法

http://blog.csdn.net/nys001/article/details/12637201如下图所示,蜂窝小区,以1为中心,顺时针编号,编号最大限定为100000。求任意两编号之间的最短距离。两个相邻小区的距离为1示例:19到30的最短距离为5 实现如下三个接口:/****************************************

2014-01-04 09:54:49 2151

原创 字符串基本操作

#include unsigned int strlenth(char *s) /* 获取字符串长度 */{ unsigned int lenth = 0;if(s!=NULL){ while(*s!='\0')/* 代码在这里实现 */ { s++; lenth++; }}return lenth;}void strcopy(

2013-12-02 16:28:38 630

转载 虚函数面试题

class A  {  public:        void function(){printf("Hello World");}    };    class B  {  public:        virtual void function(){printf("Hello World");}  };    int _tmain(int argc, _TCHAR* argv[])  {   

2013-10-16 15:25:21 798

转载 const int i 实现机制

C语言以及C++语言中的const究竟表示什么?其具体的实现机制又是如何实现的呢? 本文将对这两个问题进行一些分析,简单解释const的含义以及实现机制。 问题分析 简单的说const在C语言中表示只读的变量,而在C++语言中表示常量。C语言const示例: 复制代码代码如下:const int i=10; int *p=(int *)(&i); *

2013-10-14 17:45:07 744

原创 各种构造函数的调用

#includeusing std::cout;using std::endl;class Base{protected:int value;public: Base(int i):value(i){cout<<" Base"<<endl;} Base(){cout<<" default Base"<<endl;} Base(Ba

2013-09-12 19:55:02 552

转载 C++虚继承小结

虚继承对类的对象布局的影响要理解多重继承情况中重复基类时为什么会出现访问路径不明确的编译错误,需要了解继承中类对象在内存中的布局。在C++继承中,子类会继承父类的成员变量,因此在子类对象在内存中会包括来自父类的成员变量。实例代码如下,输出结果表明了每个对象在内存中所占的大小。#includeusing std::cout;using std::endl;class Base

2013-09-12 19:17:23 656

转载 虚继承对构造函数的影响

3、虚继承对构造函数的影响对于构造函数的影响,借助于下面的原则可以理解(来自《深入理解C++对象模型》)构造函数的调用可能内带大量的隐藏码,因为编译器会对构造函数进行扩充,一般而言编译器所作的扩充操作大约如下:1、记录在成员初始化列表中的数据成员的初始化操作会被放到构造函数本身中,按照数据成员声明的顺序2、如果有一个数据成员没有出现在初始化列表中,但是它有一个默认构造函数,那么这个

2013-09-12 19:02:51 755

原创 关于对象切片与多态性的认识

#include #include using namespace std;class Pet { string pname;public: Pet(const string& name) : pname(name) {} virtual string name() const { return pname; } virtual string descr

2013-09-12 10:11:23 566

原创 成员函数里的虚机制

#include using namespace std;class Base {public: virtual ~Base() { cout << "~Base1()\n"; f(); } virtual void f() { cout << "Base::f()\n"; } virtual void g(){f();} v

2013-08-31 09:45:59 498

原创 c++拷贝构造函数(对比于上一篇)

#include #include using namespace std;ofstream out("HowMany.out");class HowMany { string name; static int objectCount;public: HowMany(const string str=""):name(str) { objectCount++;

2013-08-26 10:36:37 428

原创 c++中类的位拷贝与拷贝构造函数(浅拷贝与深拷贝)

位拷贝拷贝的是地址(也叫浅拷贝),而值拷贝则拷贝的是内容(深拷贝)。深拷贝和浅拷贝可以简单理解为:如果一个类拥有资源,当这个类的对象发生复制过程的时候,资源重新分配,这个过程就是深拷贝,反之,没有重新分配资源,就是浅拷贝。  位拷贝,及"bitwise assignment"是指将一个对象的内存映像按位原封不动的复制给另一个对象,所谓值拷贝就是指,将原对象的值复制一份给新对象。 在用"bitwis

2013-08-26 10:06:26 667

转载 C++中const、volatile、mutable的用法

const、volatile、mutable的用法转载于http://blog.csdn.net/wuliming_sc/article/details/3717017const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYP

2013-08-23 19:56:27 475

原创 const和static在类里的使用规则的简单示例

class Bunch { //enum { size = 10 };用在早期C++版本,同static const static const int size=10;//不占类存储空间 const int num;//占存储空间 static int m;//不占类存储空间 int i[size];public: Bunch(int i):num(i){};}

2013-08-22 19:44:35 541

转载 fatal error C1853 预编译头文件来自编译器的早期版本

http://blog.sina.com.cn/s/blog_69f141290100m0ay.html当 Visual C++ 项目启用了预编译头 (Precompiled header) 功能时,如果项目中同时混合有 .c 和 .cpp 源文件,则可能收到 C1853 编译器错误:fatal error C1853: 'pjtname.pch' precompiled header fil

2013-08-06 11:12:25 699

原创 二叉树中的递归理解

void CreatBTNode(BTNode *&b,char *str){ BTNode *st[MaxSize],*p=NULL; int top=-1,k; char ch; b=NULL; ch=*str; while(ch!='\0') { switch(ch) { case'(':top++;st[top]=p;k=1;break;

2013-07-31 11:38:41 617

转载 内存的不同分配方式

内存分配方式 内存分配方式有三种: [1] 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量, static 变量。 [2] 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中 ,效率很高,但是分配的内存容量有限。[3] 从堆上分配,

2013-07-27 10:17:38 482

原创 ns2学习资料

学习NS2极好的文章,写得很详细,按步骤做下来可以得到结果。http://www.open-open.com/doc/view/8e87528b39884559bb9428fa4a0639d2另外还推荐一个网络仿真交流的平台百思http://www.baisi.net/forum-440-1.html

2013-06-06 16:08:31 530

转载 NS2安装终结版

http://blog.sina.com.cn/s/blog_6ddfdc6701018fk1.html最近一直在使用ns2,遇到各种问题,需要各种重装,特此整理一下安装过程。首先下载到ns-allinone-2.34.tar.gz,这个网上到处都是。然后开始在终端里输入命令,获取ns2需要的相关软件:sudo apt-get install build-essentialsu

2013-06-06 11:13:23 561

转载 ns2 安装与问题集锦

转自:http://hi.baidu.com/_dragonwarrior/blog/item/ba462fdc070fde43ccbf1a9e.html  Ubuntu 10.04 下 安装 NS2.30 1. NS2下载    在OpenSource中search  NS2.30    我下载的版本是NS2.30, 下载的文件为ns-allinone-2

2013-05-30 20:58:13 1481

转载 STL_容器适配器

那么C++中的容器适配器是干什么的呢?可以做一个类比,我们已有的容器(比如vector、list、deque)就是设备,这个设备支持的操作很多,比如插入,删除,迭代器访问等等。而我们希望这个容器表现出来的是栈的样子:先进后出,入栈出栈等等,此时,我们没有必要重新动手写一个新的数据结构,而是把原来的容器重新封装一下,改变它的接口,就能把它当做栈使用了。言归正传,理解了什么是适配器以后,其实问题就

2013-05-30 10:00:55 497

转载 STL学习小记--顺序容器

STL中的顺序容器有:  vector    //支持快速随机访问  list       //支持快速插入删除    deque    //双端队列顺序容器适配器:  stack        //LIFO  queue       //FIFO  priority_queue //有优先级管理的队列 我不是很明白adapter适配器的意思。这个词太布宜诺斯艾

2013-05-28 17:11:51 504

转载 STL容器分类

http://www.360doc.com/content/12/0705/08/6828497_222338600.shtml容器(container)是装有其他对象的对象。容器里面的对象必须是同一类型,该类型必须是可拷贝构造和可赋值的,包括内置的基本数据类型和带有公用拷贝构造函数和赋值操作符的类。典型的容器有队列、链表和向量等。在标准C++中,容器一般用模版类来表示。不过STL不是面向

2013-05-28 17:02:11 1050

原创 顺序容器的大小

#include#include#include#include#includeusing namespace std;int main(){ vector ivec;vector ivec1(10,2);vector svec;list ilist;deque ideq;cout<<sizeof(ivec)<<" " <<sizeof(i

2013-05-28 16:45:21 394

转载 顺序容器vector、list、deque的区别

说明:这篇文章主要通过查阅网上资料整理而成,并非原创。顺序容器三种容器均支持resieze()操作,重新划定容器大小,且此函数有重载。vector vector和built-in数组类似,是一个在堆上建立的一维数组,它拥有一段连续的内存空间,并且起始地址不变,因此 它能非常好的支持随即存取,即[]操作符。vector因为存储在堆上,所以支持erase( ), resieze()

2013-05-28 16:12:57 485

原创 深入理解虚函数表

参考与http://blog.csdn.net/haoel/article/details/1948051本人不才,按自己的理解略有修改,欢迎大家一起交流。对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真

2013-05-22 11:08:38 508

原创 栈内存分配问题

class Base  {  public:      Base(int i) : iBase(i),j(i){}      int iBase;    int j;}; int main(){ Base b(6); int *p=(int*)(&b); int a=2; int c=3; cout<<(&b.iBase)<<(&b.j)<<endl;

2013-05-21 17:39:13 453

转载 成员函数的地址

摘要:介绍了如何取成员函数的地址以及调用该地址.关键字:C++成员函数 this指针 调用约定一、成员函数指针的用法  在C++中,成员函数的指针是个比较特殊的东西。对普通的函数指针来说,可以视为一个地址,在需要的时候可以任意转换并直接调用。但对成员函数来说,常规类型转换是通不过编译的,调用的时候也必须采用特殊的语法。C++专门为成员指针准备了三个运算符: "::*"用于指针的声明,而

2013-05-21 16:27:16 602

转载 复制构造函数(拷贝构造函数)

C++拷贝构造函数(深拷贝,浅拷贝)对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。#include iostream>using namespace std;class CExample {pri

2013-05-17 10:04:27 403

转载 char[] 与char*的区别

以下内容均来自互联网,系笔者汇总并总结。1. 问题介绍问题引入:在实习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",前者改变其内容程序是会崩溃的,而后者完全正确。程序演示:测试环境Devc++代码#include using namespace std;main(){   char *c1

2013-05-13 09:54:43 510

原创 几种情况下析构函数的调用

(1)class A {public: ~A(){cout<<"A destruction"<<endl;}}; class B:public A { public: ~B(){cout<<"B destruction"<<endl;}}; int main() { B *p = new B; del

2013-05-12 21:07:44 649

转载 堆 栈 内存

一、地址1.对于32位的操作系统,地址都是32位的,前0不可以省略例:[cpp] view plaincopyprint?int *p = NULL;  cout//输出00000000,而不是0  int *p = NULL;cout2.指针可以通过内存地址直接访问数据,可避免在程序中复制大量的代码。因此指针效率最高例:a[j]:a+j

2013-05-12 20:26:09 494

转载 面试题1

一、[cpp] view plaincopyprint?char str[] = "abcd";  coutsizeof(str)//答案:5。因为有一个'\0'    wchar_t wstr[] = "abcd";  coutsizeof(wstr)//答案:10。因为在wchar_t中,'\0'也是两个字节。在linux的g++编译环境中不能使用wchar_t

2013-05-12 20:10:42 501

转载 同一进程中的线程可以共享哪些资源

1.用堆和栈分配一个变量可能在以后的执行中产生意想不到的结果,而这个结果的表现就是内存的非法被访问,导致内存的内容被修改。理解这个现象的两个基本概念是:在一个进程的线程共享堆区,而进程中的线程各自维护自己的堆栈。如果声明一个成员变量,如char name[200],随着这段代码调用的结束,name在栈区的地址会被释放。而如果是char* name = new char[200];情况完全不

2013-05-12 20:00:36 852

原创 值交换和字符交换的对比

void swap_int(int a, int b)  {      int temp = a;      a = b;      b = temp;  }  void swap_int(int *a, int *b)  {      int temp ;  temp=*a; *a=*b; *b=temp;} void swap_str(cha

2013-05-12 19:54:19 749

原创 union 使用

int main(){struct {   char ch2;    union {        char ch1;        char num;    } bbb;    }aaa;aaa.ch2='a';aaa.bbb.num='1';cout输出为 a 1 1}///////////////////////////////////

2013-05-12 19:26:39 462

ffmpeg h264编码

带有编译好的ffmpeg动态链接库,及相应头文件,在VS2008下可以直接编译成功,并编码YUV文件 找了很久的好资源!

2013-01-08

MPEG2编解码

完整的MPEG2编解码程序,在MATLAB平台下运行成功。有相关的注释,便于初学者了解视频编解码的基本原理及步骤。

2012-11-12

单片机串行通信

关于实现串行通信的小实验,适合初学者,希望有帮助

2012-01-10

空空如也

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

TA关注的人

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