- 博客(41)
- 资源 (10)
- 收藏
- 关注
转载 程序员面试题精选100题(63)-数组中三个只出现一次的数字
在将这个题目之前,先讲讲一个数组中有两个数字出现一次,其他的都出现两次的情况。具体题目如下: 题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。分析:首先考虑这个问题的一个简单版本:一个数组里除了一个数字之外,其他的数字都出现了两次。请写程序找出这个只出现一次的数字。这个题目的突
2013-10-05 00:49:11
640
转载 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
3575
转载 startService与bindService
Service的生命周期 Service的生命周期方法比Activity少一些,只有onCreate, onStart, onDestroy 我们有两种方式启动一个Service,他们对Service生命周期的影响是不一样的。1 通过startService Service会经历 onCreate -> onStart stopService的时候直接onDe
2013-05-21 14:39:31
578
原创 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
1026
转载 ubuntu下wxWidget的安装及相关问题解决
一、首先,重新创建一个新的用户,起名为hr2000,在终端输入以下命令:useradd –d /home/hr2000 –m hr2000 (注:当然你也可以在你自己的帐户下安装)二、设置新用户密码,终端输入:passwd hr2000三、复制wxGTK安装文件到此目录下/home/hr2000四、修改目录/home/hr2000下的.profile文件,添加
2013-02-25 22:15:29
5629
转载 Android Activity中的六个主要函数
Android中一个Activity一般都需要实现六个函数:onCreate(), onStart(), onResume(),onPause(),onStop(),onDestroy(). onCreate函数:注册你要用到的变量,比如说service,receiver,这些变量是无论你的Activity是在前台还是在后台都能够被响应到的,然后调用上面那个用来初始化的函数初始化布
2013-02-22 10:34:54
665
原创 JAVA构造器
构造器是创建java 对象的重要途径,通过new关键字调用构造器时,构造器也确实返回了该类的对象,但这个对象并不完全由构造器负责创建的。实际上,当程序员调用构造器时,系统会先为该函数分配内存空间,并为这个对象执行默认初始化,这个对象已经产生了-------这些操作都在构造器执行之前就完成了。也就是说,当系统开始执行构造器的执行体之前,系统已经创建了一个对象,只是这个对象还不能被外部程序
2013-01-14 12:17:29
278
原创 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
271
原创 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
575
原创 保存文本文件为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
2925
转载 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
1068
转载 STL源码之迭代器
STL源码之迭代器 【本文由天地任我游总结,转载请包含链接:http://houjixin.blog.163.com/】1、迭代器是什么?为什么要引入迭代器? STL是将容器与算法分离开的,我们用到的类模板和函数模板即是用于实现这两个东西,其中类模板用于实现容器,函数模板用于实现算法,在使用的时候需要一个将两者联系起来的东西,这个东西就是迭代器。例如段代码1所示:算法fin
2012-11-26 18:05:34
683
转载 extern 详解
C/C++中extern关键字详解1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这
2012-11-26 14:16:32
358
原创 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
1258
原创 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
316
原创 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
429
原创 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
1095
原创 C++ 易错点积累
(1)在处理C风格字符串的标准库函数时,牢记字符串必须以结束符null结束:char ca[] = {'C', '+', '+'};int n = strlen(ca);ca是一个没有null结束符的字符数组,计算结果不可预料。标准库函数strlen总是假定其参数字符串以null结束,当调用该标准库函数时,参数将会从实参ca指向的内粗空间开始一直搜索结束符,直到恰好遇到n
2012-10-31 15:13:46
335
原创 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
264
转载 bind -boost
bind - boost头文件: boost/bind.hppbind 是一组重载的函数模板.用来向一个函数(或函数对象)绑定某些参数. bind的返回值是一个函数对象. 它的源文件太长了. 看不下去. 这里只记下它的用法: 9.1 对于普通函数假如有函数 fun() 如下: void fun(int x, int y) { cout }现在我们看
2012-10-28 18:52:12
262
原创 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
234
原创 支持跨平台
/*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
1480
原创 通过进程名获取进程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
705
原创 内存映射文件
内存映射文件,是由一个文件到一块内存的映射。Win32提供了允许应用程序把文件映射到一个进程的函数 (CreateFileMapping)。内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而且在对该文件进行操作之前必须首先对文件进行映射。使用内存映射文件处理存储于磁盘上的文件时,将不必
2012-09-20 17:49:07
340
转载 MP3文件格式解析
转自:http://blog.163.com/waft_xu/blog/static/438152942008139330707/1, MP3简介MP3是今天一种常见的音乐格式,但恐怕除了工作要求之外,有兴趣对此进行研究的人恐怕不多。所以,当我打算做MP3解码方面的工作时,在找资料时也颇费了一番周折,同时也觉得很有趣。所以想在这里分享一下自己的心得,做一个总结性的介
2012-08-23 17:30:46
457
转载 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
364
原创 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
380
原创 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
184
转载 c++ traits技术
Traits技术可以用来获得一个 类型 的相关信息的。 首先假如有以下一个泛型的迭代器类,其中类型参数 T 为迭代器所指向的类型:template typename T>class myIterator{ ...};当我们使用myIterator时,怎样才能获知它所指向的元素的类型呢?我们可以为这个类加入一个内嵌类型,像这样:template typename
2012-07-10 12:03:31
240
原创 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
569
原创 将一个数转成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
1068
转载 _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
449
转载 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
449
转载 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
743
原创 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
250
原创 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
538
转载 TCP头校验和计算算法详解
我就不管是按“位”(bit)取反相加,还是 按“1的补码”相加了,总之就是把需要进行校验的“字串”加(+)起来,把这相加的 结果取反当做“校验和” (Checksum), 比如,相加的结果是0101,那么“校验和”就是1010,验证的时候呢,就是 0101+1010 = 1111 ,取反后, 就是0——如果验证得“零”(0),就是正确的!先将checksum字段置零,然后按
2012-07-01 22:52:43
1094
转载 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
364
转载 从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
4147
标准C++宝典(高清pdf)
2012-11-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人