自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (10)
  • 收藏
  • 关注

转载 程序员面试题精选100题(63)-数组中三个只出现一次的数字

在将这个题目之前,先讲讲一个数组中有两个数字出现一次,其他的都出现两次的情况。具体题目如下:     题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。分析:首先考虑这个问题的一个简单版本:一个数组里除了一个数字之外,其他的数字都出现了两次。请写程序找出这个只出现一次的数字。这个题目的突

2013-10-05 00:49:11 610

转载 T(n) = 25T(n/5)+n^2的时间复杂度 计算方法

T(n) = 25T(n/5)+n^2的时间复杂度 计算方法对于T(n) = a*T(n/b)+c*n^k;T(1) = c 这样的递归关系,有这样的结论: if (a > b^k)   T(n) = O(n^(logb(a)));logb(a)b为底a的对数if (a = b^k)   T(n) = O(n^k*logn); if (a a=25; b = 5

2013-09-27 21:12:19 3491

转载 startService与bindService

Service的生命周期 Service的生命周期方法比Activity少一些,只有onCreate, onStart, onDestroy 我们有两种方式启动一个Service,他们对Service生命周期的影响是不一样的。1 通过startService     Service会经历 onCreate -> onStart    stopService的时候直接onDe

2013-05-21 14:39:31 548

原创 char *str 和 char str[]

char *strA1(){ char str1[] = "hello world"; return str1;}char *strA2(){ char* str2= "hello world111"; return str2;}int main(void){ char *ptr1 = strA1();

2013-03-25 19:58:31 988

转载 ubuntu下wxWidget的安装及相关问题解决

一、首先,重新创建一个新的用户,起名为hr2000,在终端输入以下命令:useradd –d /home/hr2000 –m hr2000          (注:当然你也可以在你自己的帐户下安装)二、设置新用户密码,终端输入:passwd hr2000三、复制wxGTK安装文件到此目录下/home/hr2000四、修改目录/home/hr2000下的.profile文件,添加

2013-02-25 22:15:29 5548 1

转载 Android Activity中的六个主要函数

Android中一个Activity一般都需要实现六个函数:onCreate(), onStart(), onResume(),onPause(),onStop(),onDestroy(). onCreate函数:注册你要用到的变量,比如说service,receiver,这些变量是无论你的Activity是在前台还是在后台都能够被响应到的,然后调用上面那个用来初始化的函数初始化布

2013-02-22 10:34:54 630

原创 JAVA构造器

构造器是创建java 对象的重要途径,通过new关键字调用构造器时,构造器也确实返回了该类的对象,但这个对象并不完全由构造器负责创建的。实际上,当程序员调用构造器时,系统会先为该函数分配内存空间,并为这个对象执行默认初始化,这个对象已经产生了-------这些操作都在构造器执行之前就完成了。也就是说,当系统开始执行构造器的执行体之前,系统已经创建了一个对象,只是这个对象还不能被外部程序

2013-01-14 12:17:29 261

原创 java 参数传递

java中的参数传递都是值传递,即只是将实参的副本(复制品)传入方法内,在方法里改变值,参数本身不受到影响。基本类型:public class Test{   public static void swap(int a,int b)  {          int tmp = a;          a = b;          b = tmp;  }

2013-01-13 16:18:50 254

原创 SetBitStream

// wData 是数据  用ncData 为来表示wData// int index = 0// index = SetBitStream(index,1,4);        0001          index变成4// index = SetBitStream(index,3,10)        0000000011    index变成14// 0001   0000

2013-01-10 10:28:54 555

原创 保存文本文件为Unicode格式

TCHAR szPath[MAX_PATH]; GetModuleFileName( NULL, szPath, MAX_PATH ); PathRemoveFileSpec( szPath ); CString strFile = szPath; CString strDatFilePath; strDatFilePath.Format( _T("%s\\%s"),strFile,

2012-12-24 18:40:43 2874

转载 vs2008安装STL-5.2.1以及boost_1_46_1

vs2008安装STL-5.2.1以及boost_1_46_1(有图有真相)1,下载好软件包 "STLport_5.2.1.tar.bz2" 以及 "boost_1_46_1.zip"。 2,安装STL:1)将STLport软件包解压缩到D盘。如图一:2)运行VS2008工具的命令行提示符,如图二:3)进入到STLport目录,如运行命令:" cd d:/STLpo

2012-11-29 14:46:34 1023

转载 STL源码之迭代器

STL源码之迭代器 【本文由天地任我游总结,转载请包含链接:http://houjixin.blog.163.com/】1、迭代器是什么?为什么要引入迭代器? STL是将容器与算法分离开的,我们用到的类模板和函数模板即是用于实现这两个东西,其中类模板用于实现容器,函数模板用于实现算法,在使用的时候需要一个将两者联系起来的东西,这个东西就是迭代器。例如段代码1所示:算法fin

2012-11-26 18:05:34 660

转载 extern 详解

C/C++中extern关键字详解1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。      也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这

2012-11-26 14:16:32 321

原创 C++ 操作符重载的规则

->   ()  [ ]   =    等操作符必须定义为类成员+-   ++   会改变对象的状态,通常定义为类成员+

2012-11-13 11:30:35 296

原创 back_inserter的用法

back_inserter函数式迭代适配器,使用时要包含  iterator头文件。与容器适配器一样,迭代适配器使用一个对象作为实参,并生成一个适应其参数行为的新对象。vector iVec;fill_n( iVec, 10, 0);  在iVec中写入 10 个 元素 ,会报错 ,因为  iVec为Empty.fill_n(back_inserter(iVec),

2012-11-07 12:26:58 1218

原创 find_first_of

int a[5] = { 1,3,4,6,7};    int b[5] = { 1,3,5,7,8};    list roster1(a,a+5);    list    roster2(b,b+5);    int cnt = 0;    list::iterator it = roster1.begin();    while( ( it = find_firs

2012-11-07 11:44:13 290

原创 istringstream的用法

// map_tranc.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #include #include #include using namespace std;int _tmain(int argc, _TCHAR* argv

2012-11-06 16:55:38 412

原创 map insert 操作

map m_map;m_map.insert(map::value_type("hello",5));m_map.insert(make_pair("hello",5));也就是说,insert后面的数据是pair类型或者是value_type类型了,然而对C++有了解的人都明白,其实value_type和pair 是等价的、insert() 中的参数必须是value_type

2012-11-06 14:46:35 1061

原创 C++ 易错点积累

(1)在处理C风格字符串的标准库函数时,牢记字符串必须以结束符null结束:char ca[] = {'C', '+', '+'};int  n = strlen(ca);ca是一个没有null结束符的字符数组,计算结果不可预料。标准库函数strlen总是假定其参数字符串以null结束,当调用该标准库函数时,参数将会从实参ca指向的内粗空间开始一直搜索结束符,直到恰好遇到n

2012-10-31 15:13:46 312

原创 const

(1)const 引用可以初始化为不同类型的对象或者初始化为右值。int  i =42;const  int &r = 42;         //去掉const 非法const int &r2 = r+i;原因 :观察将引用绑定到不同的类型时,就可以理解上面的问题double dval = 3.14;const int &ri = dval;编译器

2012-10-30 16:39:15 250

转载 bind -boost

bind - boost头文件: boost/bind.hppbind 是一组重载的函数模板.用来向一个函数(或函数对象)绑定某些参数. bind的返回值是一个函数对象. 它的源文件太长了. 看不下去. 这里只记下它的用法: 9.1 对于普通函数假如有函数 fun() 如下:  void fun(int x, int y) {  cout  }现在我们看

2012-10-28 18:52:12 248

原创 static 用法

用法一:typedef BOOL (*Func)(int);class A{public:    A(Func func):m_pFunc(func){}private:    Func m_pFunc;};class B:public A{public:    B():A(func){}    static BOOL func(in

2012-10-28 16:18:33 224

原创 支持跨平台

/*Win32*/#if defined(__NT__) || defined(_WIN32) || defined(WIN32) #ifndef WIN32 #define WIN32 #endif #ifndef _WIN32 #define _WIN32 #endif #ifndef __WIN32__

2012-10-16 18:05:09 1460

原创 通过进程名获取进程ID

BOOL GetProcessIdByName(LPSTR szProcessName, DWORD *lpPID){ STARTUPINFO st; PROCESS_INFORMATION pi; PROCESSENTRY32 ps; HANDLE hSnapshot; ZeroMemory(&st,sizeof(STARTUPINFO)); ZeroMemory(&pi,size

2012-10-08 14:46:32 683

原创 内存映射文件

内存映射文件,是由一个文件到一块内存的映射。Win32提供了允许应用程序把文件映射到一个进程的函数 (CreateFileMapping)。内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而且在对该文件进行操作之前必须首先对文件进行映射。使用内存映射文件处理存储于磁盘上的文件时,将不必

2012-09-20 17:49:07 319

转载 MP3文件格式解析

转自:http://blog.163.com/waft_xu/blog/static/438152942008139330707/1, MP3简介MP3是今天一种常见的音乐格式,但恐怕除了工作要求之外,有兴趣对此进行研究的人恐怕不多。所以,当我打算做MP3解码方面的工作时,在找资料时也颇费了一番周折,同时也觉得很有趣。所以想在这里分享一下自己的心得,做一个总结性的介

2012-08-23 17:30:46 413

转载 lpctstr lpcwstr

#ifdef UNICODE #define LPCTSTR LPCWSTR #else #define LPCTSTR LPCSTR #endif      LPCTSTR A 32-bit pointer to a constant character string that is portable for Unicode and DBCS. An LPCWSTR

2012-08-21 15:28:37 344

原创 windows 搜索文件

void SearchFile(CString strPath) {   TCHAR szFind[MAX_PATH] = {0};  TCHAR szFile[MAX_PATH] = {0};  WIN32_FIND_DATA FindFileData;  ZeroMemory(szFile,MAX_PATH);  ZeroMemory(szFind,MAX_PATH);

2012-07-25 14:32:17 365

原创 Unicode 字符串的转换

Unicode工程      CString 转成 char*               CString str = _T("12.21");              _bstr_t bstr = (LPCTSTR)str;              char* b = (char*)bstr;              float f = atof(b);

2012-07-25 14:27:59 171

转载 c++ traits技术

Traits技术可以用来获得一个 类型 的相关信息的。 首先假如有以下一个泛型的迭代器类,其中类型参数 T 为迭代器所指向的类型:template typename T>class myIterator{ ...};当我们使用myIterator时,怎样才能获知它所指向的元素的类型呢?我们可以为这个类加入一个内嵌类型,像这样:template typename

2012-07-10 12:03:31 226

原创 Stl_alloc.h

/* * Copyright (c) 1996-1997 * Silicon Graphics Computer Systems, Inc. * * Permission to use, copy, modify, distribute and sell this software * and its documentation for any purpose is hereb

2012-07-06 15:20:02 541

原创 将一个数转成8的倍数

转成 8 的倍数:enum {__ALIGN=8}; static size_t  ROUND_UP(size_t bytes){          return (((bytes)+__ALIGN-1)&~(__ALIGN-1));}

2012-07-04 15:40:59 1003

转载 _type_traits

#ifndef MY_TYPE_TRAITS_H#define MY_TYPE_TRAITS_H struct my_true_type {}; struct my_false_type {}; template struct my_type_traits{    typedef my_false_type has_trivial_destructo

2012-07-03 22:02:41 436

转载 placement new

placement new 是重载operator new的一个标准、全局的版本,它不能被自定义的版本代替(不像普通的operator new和operator delete能够被替换成用户自定义的版本)。在一块已分配的内存创建对象它的原型如下: void *operator new( size_t, void *p ) throw()  { return p; }首先我们区分下几

2012-07-03 17:35:19 433

转载 non-trivial destructor 和 trivial destructor

trivial理解为无用的,无意义的; non-trivial自然就是有实际意义的如果一个class没有定义destructor,如果这个class中的一个数据成员拥有destructor,那么编译器会自动合成出这个class的destructor来.在这个class的合成的destructor里调用那个数据成员的destructor,这个合成的 class的destructor是有意义的,即

2012-07-03 17:19:48 707

原创 C++运算符重载

#include using namespace std;class INT{ // public:  friend ostream& operator    INT(int i):m_i(i){}    INT& operator++()  {   ++(this->m_i);   return *this;  }    const

2012-07-03 12:10:34 228

原创 E:Encountered a section with no Package: header

在linux 下  安装软件  或者更新源是出错E:Encountered a section with no Package: header, E:Problem with MergeList /var/lib/apt/lists/cn.archive.ubuntu.com_ubuntu_dists_natty_main_binary-i386_Packages在

2012-07-01 22:57:13 522

转载 TCP头校验和计算算法详解

我就不管是按“位”(bit)取反相加,还是 按“1的补码”相加了,总之就是把需要进行校验的“字串”加(+)起来,把这相加的 结果取反当做“校验和” (Checksum), 比如,相加的结果是0101,那么“校验和”就是1010,验证的时候呢,就是 0101+1010 = 1111 ,取反后, 就是0——如果验证得“零”(0),就是正确的!先将checksum字段置零,然后按

2012-07-01 22:52:43 1046

转载 c++ 虚函数

我们先来讨论一个类(Class)的存储配置。首先来写一个类,这个类没有任何数据成员,然后来看看他的内存结构。程序1:#include using namespace std;class Class{};int main(){ Class objClass;  cout  cout  return 0;}程序输出:Size of objec

2012-06-03 22:05:00 347

转载 从U盘安装CentOS-5.3-i386到服务器

Linux CentOS U盘安装Linux今天给实验室的服务器装Linux系统,准备利用U盘来安装CentOS5.3版本的Linux发行版,在网上搜了下资料,发现一篇文章与写的不错,但不知是环境的不同还是原作者在写博客时有什么疏忽有些细节出现些问题,所以在此我将自己的安装过程记录一下,以便各位朋友参考。原文地址:http://hi.baidu.com/cwbdde/blog/item/5

2012-06-03 21:47:42 4118

标准C++宝典(高清pdf)

《The Standard C++ Bible》(中文版:标准C++宝典),掌握C++标准 [美]Al Stevens,Clayton Walnum 著 电子工业出版社 C++升级之作,《标准C++宝典》,这本书对于语法正所谓事无巨细,一一道来

2012-11-22

MediaInfo源代码

对音视频的格式解析很全面,牛人的源代码帮助很大

2012-10-12

movspot结构分析工具

mov视频格式解析工具,解析苹果的mov格式 例如 m4a 3g2

2012-10-12

TCP/IP协议原理

TCP/IP 协议经典教程,很清楚的解释了网络中每层的作用及原理,是学习网络知识不可多得的书

2012-10-11

STL源码剖析(侯捷)

STL经典书籍 里面对STL的内存管理,容器 等进行了深入的剖析

2012-07-05

cygwin-g++ for windows

侯捷经典书籍《STL源码剖析》中使用的测试工具

2012-07-02

空空如也

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

TA关注的人

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