- 博客(40)
- 收藏
- 关注
原创 Queue模板类
#includeusing namespace std;/*友元类的前向声明*/templateclass Queue;/*友元函数的前向声明*/templateostream & operator &q);/*结点,包括数据,和指针*/templateclass QueueItem{ friend class Queue; friend ostream& oper
2012-06-12 22:54:05
1721
原创 2012年互联网公司招聘要求
百度机器学习/数据挖掘工程师-具有以下任一领域相关的理论背景:机器学习/数据挖掘/信息检索/自然语言处理/语言模型/文本分类与聚类/统计数学/机制设计/博弈论-至少精通一门编程语言,熟悉网络编程、多线程、分布式编程技术,对数据结构和算法设计有较为深刻的理解具有以下条件者优先: -熟悉文本分类、聚类、机器翻译,有海量数据处理、数据挖掘、机器学习项目经验 -熟悉分布式计
2012-06-07 15:21:46
1455
原创 Essential c++,泛型编程风格读书笔记
#includeusing namespace std;/*数组作为函数参数传递的处理办法,数组长度或哨兵*/templatetype *find(type *arr,int size,const type & value){ for(int i=0;i!=size;i++) if(arr[i]==value) return &arr[i]; return 0;}t
2012-06-06 21:09:38
605
原创 数据结构与算法分析 树
由后缀式构造二叉表达树,前序遍历是前缀式,中序遍历是中缀式,后序遍历是后缀式#include#includeusing namespace std;templatestruct BinaryNode{ Object data; BinaryNode *left; BinaryNode *right; BinaryNode(const Object & x,BinaryN
2012-06-04 15:33:12
592
原创 表,栈,队列程序代码片段
#include#includeusing namespace std;template void printLots(const list & L,const list & P){ list::const_iterator iter1=L.begin(); list::const_iterator iter2=P.begin(); int start=1; for(;iter
2012-06-02 21:59:45
571
原创 基于栈的平衡符号匹配问题
栈的实现基于vector顺序容器的栈的实现#ifndef WEIWEI_H#define WEIWEI_H#includeusing std::vector;templateclass Stack{public: Stack(int val=-1):topOfStack(val){} void push(const object& val) {
2012-06-02 00:17:16
564
原创 四种求最大子序列和问题的解
#include#includeusing namespace std;int maxSubSum1(const vector &a){ int maxSum=0;/*记录最大子集和*/ /*枚举所有出现的子集*/ for(int i=0;i!=a.size();i++)/*保证n趟遍历*/ { for(int j=i;j!=a.size();j++)/*
2012-06-01 17:15:26
493
原创 类与数据抽象
#include#include#include#includeusing namespace std;class Employee{public: Employee():name("NoName") { setId(); } Employee(string n):name(n) { setId(); } Employee
2012-05-31 21:33:16
378
原创 数据结构与算法分析 随笔2
#includeusing namespace std;/*n的二进制数中1的个数*//*n是奇数的话,它等于n/2的二进制表示中的1的个数加1*/int ones(int n){ cout<<"调用"<<n<<endl; if(n<2) return n; return n%2+ones(n/2);}int main(){ cout<<o
2012-05-31 08:59:34
323
原创 泛型编程
#include#include#include#includeusing namespace std;templateT1& print(T1 &s,const T2 &val){ s<<val; return s;}int main(){ string str="Hello World",desstr; ostringstream
2012-05-29 14:22:09
350
原创 数据结构与算法分析 感悟
#include#include#include#include#includeusing namespace std;const int & findMax(const vector &vec){ size_t max=0; for(size_t i=1;i!=vec.size();i++) { if(vec[i]>vec[max])
2012-05-29 08:48:55
725
原创 泛型算法练笔
#include#include#includeusing namespace std;int main(){ int data; vector vec; while(cin>>data) vec.push_back(data); cout<<"请输入参数:"; int num; cin.clear(); getchar(); cin>>n
2012-05-27 11:49:03
358
原创 数据结构之串
串的堆分配表示#include#include#includetypedef struct{ char *ch; int length;}HString;/* 初始化(产生空串)字符串T。另加 */void InitString(HString *T){ (*T).length=0; (*T).ch=NULL;}/* 生成一
2012-05-26 20:17:31
939
原创 关联容器练笔
#include#include#include#includeusing namespace std;int main(){ string first; int second; pair t; vector > vec; while(cin>>first && cin>>second) { /*版本一*/ /*t=make_pair(
2012-05-25 09:42:56
478
原创 顺序容器练笔
#include#include#includeusing namespace std;templatevoid print(T t1,T t2){ while(t1!=t2) cout<<*t1++<<" "; cout<<endl;}int main(){ int num[]={1,2,3,4,5,6,7,8}; size_t si
2012-05-24 11:36:34
618
原创 串的实现
#includeusing namespace std;/*串的定长顺序存储表示*//*在顺序存储结构中,实现串的操作的原操作为“字符序列的复制”,操作的时间复杂度基于复制的字符序列的长度。另一个操作的特点:如果在操作中出现串值序列的长度超过上限MAXSTRLEN则约定用截尾法处理。*/#define MAXSTRLEN 5/*用户可在255以内定义最大串长*/
2012-05-22 22:20:31
405
转载 KMP算法解决字符串匹配问题
KMP算法解决的问题是字符匹配,是由Knuth–Morris–Pratt共同开发出来的,这个算法把字符匹配的时间复杂度缩小到O(m+n),而空间复杂度也只有O(m),n是target的长度,m是pattern的长度,在此算法在发明之前并不是没有如此高效的算法,但是原算法比较复杂。Kmp算法优雅高效,但是实现却不难理解且代码长度很短,是优秀算法设计的典范,值得拿出来仔细分析。一、原始匹配算法
2012-05-21 08:36:51
607
转载 c++面试题整理(四)
43. 分析一下这段程序的输出 (Autodesk)#includeusing namespace std;class B{public: B(){ cout<<"default constructor"<<endl; } ~B(){ cout<<"destructed"<<endl; } B(const B& b){ data=b.d
2012-05-20 22:29:32
518
转载 C++的四种cast操作符的区别
Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意?A:转换的含义是通过改变一个变量的类型为别的类型从而改变该变量的表示方式。为了类型转换一个简单对象为另一个对象你会使用传统的类型转换操作符。比如,为了转换一个类型为doubole的浮点数的指针到整型:代码:int i;double d;
2012-05-20 15:25:58
475
转载 c++面试题整理(三)
29.struct 和 class 的区别答案:struct 的成员默认是公有的,而类的成员默认是私有的。struct 和 class 在其他方面是功能相当的。从感情上讲,大多数的开发者感到类和结构有很大的差别。感觉上结构仅仅象一堆缺乏封装和功能的开放的内存位,而类就象活的并且可靠的社会成员,它有智能服务,有牢固的封装屏障和一个良好定义的接口。既然大多数人都这么认为,那么只有在你的类有很少的方
2012-05-20 15:16:22
542
转载 c++面试题整理(二)
13.“引用”与多态的关系?引用是除指针外另一个可以产生多态效果的手段。这意味着,一个基类的引用可以指向它的派生类实例。例4Class A; Class B : Class A{...}; B b; A& ref = b;14.“引用”与指针的区别是什么?指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;而引用本身就是目标变量的
2012-05-20 14:10:20
406
转载 c++面试题整理(一)
1.new、delete、malloc、free关系delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消
2012-05-20 09:16:26
546
原创 线性表的链式表示与实现
#include#includeusing namespace std;typedef int ElemType;typedef int Status;#define OK 1#define ERROR 0typedef struct LNode{ ElemType data; struct LNode *next;}LNode,*LinkList;
2012-05-19 10:30:36
568
原创 观察者模式
我们先看看报社和杂志的订阅是怎么回事:1.报社的业务是出版报纸2.向某家报社订阅报纸,只要他们有新报纸,就会给那你送来。只要你是他们的订户,你就会一直收到新报纸。3.当你不想再看报纸的时候,取消订阅,他们就不会再送新报纸来了。4.只要报社还在运营,就会一直有人(或单位)向他们订阅报纸或取消订阅报纸。出版者(主题)+订阅者(观察者)=观察者模式观察者模式定义了对象之间的一对多
2012-05-18 15:01:09
282
原创 智能指针
#includeusing namespace std;/*智能指针类*//*每次创建类的新对象时,初始化指针并将使用计数置为1当对象作为另一个对象的副本而创建时,复制构造函数复制指针并增加与之相应的使用计算器的值对一个对象进行赋值时,赋值操作符减少左操作数所指对象的使用计数的值,如果减至0则删除对象,并增加右操作数所指对象的使用计数的值。最后调用析构函数,析构
2012-05-18 14:05:28
250
原创 构造,复制,赋值,析构
#includeusing namespace std;class A{public: A(int t=0):data(t){cout<<"constructor!"<<endl;} //explicit A(int t=0):data(t){cout<<"constructor!"<<endl;} A(const A &a) { data=a.data;
2012-05-18 10:48:08
273
原创 策略模式
#includeusing namespace std;//策略基类class COperation{public: COperation(int a,int b):m_nFirst(a),m_nSecond(b){cout<<"1 constructed!\n";} virtual ~COperation(){cout<<"1 destructed!\n";};
2012-05-17 10:21:34
235
原创 排序算法
#include#include#include#includeusing namespace std;#define MAXSIZE 20typedef int KeyType;typedef struct{ KeyType key; string otherinfo;}RedType;typedef struct{ RedType
2012-05-16 07:58:45
478
原创 检测类型
#!/usr/bin/env pythondef displayNumType(num): print num,'is', if isinstance(num,(int,long,float,complex)): print 'a number of type:',type(num).__name__ else:
2012-05-14 10:23:01
251
原创 创建文件,文件读取与显示
#!usr/bin/env python'makeTextFile.py -- create text file'import osls=os.linesep#get filenamewhile True: fname=raw_input('Enter filename:') if(os.path.exists(fname)):
2012-05-14 08:54:49
386
原创 调用操作符和函数对象
#includeusing namespace std;class absInt{public: int operator()(int val)/*函数调用操作符*/ { return val<0?-val:val; }};int main(){ int i=-41; absInt absObj; int ui=absObj(i); c
2012-05-13 12:41:36
657
原创 重载自增与自减操作符
#include#include using namespace std;class CheckedPtr{public: CheckedPtr(int *b,int *e):beg(b),end(e),curr(b){}/*无默认构造函数,需绑定某对象*/ CheckedPtr& operator++();//前缀 C
2012-05-13 10:33:43
1644
原创 TCP/IP概论
TCP/IP通常被认为是一个四层协议系统应用层 telnet (远程登录)FTP(文件传输协议)和SMTP(简单邮件传输协议),SNMP(简单网络管理协议)运输层 TCP(传输控制协议)和UDP(用户数据报协议)网络层 IP(网际协议),ICMP(互联网控制报文协议)和IGMP(互联网组管理协议)链路层 设备驱动程序及接口TCP/IP协议族是一组不同的协议组合在一起构成的协
2012-05-13 09:20:08
554
原创 c语言实现顺序表的插入,删除和求给定元素在表中的位序等运算
/*在顺序表中插入与删除数据*/#include#include#define LIST_SIZE 100/*初始长度*/#define LIST_INCREMENT 10/*长度增量*/typedef char ElemType;/*定义顺序表类型*/typedef struct{ ElemType *elem; int len
2012-05-12 23:26:19
17556
原创 复数类的实现
#ifndef __EXAMPLE__#define __EXAMPLE__#includeusing namespace std;class Complex{public: Complex(double i=0,double j=0):data1(i),data2(j){} Complex(const Complex& c):data1(c.data1)
2012-05-12 16:08:27
507
原创 《python核心编程》读书笔记一 欢迎来到python世界
很多shell脚本语言使用echo命令来输出程序结果。>>> myString='Hello World!'>>> print myStringHello World!>>> myString'Hello World!'>>> _ //下划线(_)在解释器中有特别的含义,表示最后一个表达式的值。'Hello World!'>>> print
2012-05-11 17:47:24
625
原创 shell及常用命令
shell是系统的用户界面,它提供用户与内核交互的接口。它接受用户输入的命令并把该命令送入内核执行,再将执行结果显示给用户。+,其中n=1...6,来切换虚拟终端。ls -al /bin/*sh //用来显示bin目录下shell的详细情况;shell命令的基本格式是:命令名 [选项] ...以“-”开头的选项通常只有一个字母,多个选项可以用一个“-”连接起来。例如“ls -a -
2012-05-09 21:47:14
331
原创 《c++primer》读书笔记二 复制控制
复制构造函数是一种特殊的构造函数,具有单个形参,该形参(常用const修饰)是对该类型的引用。1.当定义一个新对象并用一个同类型的对象对它进行初始化时,将显示使用复制构造函数;2.当将该类型的对象传递给函数或从函数返回该类型的对象时,将隐式使用复制构造函数。当对象超出作用域或动态分配的对象被删除时,将自动应用析构函数。析构函数可用于释放对象构造时或在对象生命期中所获取的资源。不管类是否
2012-05-09 20:08:22
351
原创 《C++primer》读书笔记一 类
12.1 类的定义和声明 一个类可以包含若干公有的、私有的和受保护的部分。在public中定义的成员可被使用该类型的所有代码访问;在private部分定义的成员可被其他类成员访问。在类内部定义的函是数默认为inline。const成员不能改变其所操作的对象的数据成员。const必须同时出现在声明和定义中,若只出现在其中一处,就会出现编译错误。将类定义放在头文件中,可以保证在每个
2012-05-08 21:01:27
401
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人