首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

《剑指offer》系列-一

2013-09-30 
《剑指offer》系列---1最近一直在看剑指offer,这上面的题目都是比较考察编程能力的,打算做个记录,把写过的代

《剑指offer》系列---1

最近一直在看剑指offer,这上面的题目都是比较考察编程能力的,打算做个记录,把写过的代码保存下来:

1.实现一个string类

面试官的考察点应该在以下几点:

1.模板类的书写

2.对于赋值函数考察的几点:(1)是否返回引用,因为只有返回引用,才能连续的进行赋值 (2)参数是否是常量 (3)是否是自身赋值(4)是否释放原来的内存 

一个完善的 string类如下:

#include <iostream>#include <queue>#include <stdlib.h>using namespace std;template<class T>class Stack{public:Stack();~Stack();void insert(const T &x);T get();private:queue<T> q1;queue<T> q2;};template<class T>Stack<T>::Stack(){}template<class T>Stack<T>::~Stack(){}template<class T>void Stack<T>::insert(T const &x){if(q1.empty())q2.push(x);elseq2.push(x);}template<class T>T Stack<T>::get(){T temp;if(q1.empty()){while(!q2.empty()){temp = q2.front();q2.pop();if(q2.empty())return temp;q1.push(temp);}cout<<"satck is empty"<<endl;exit(-1);}if(q2.empty()){while(!q1.empty()){temp = q1.front();q1.pop();if(q1.empty())return temp;q2.push(temp);}cout<<"satck is empty"<<endl;exit(-1);}}int main(){Stack<int> stack;for(int i = 0; i < 5; i++)stack.insert(i);for(int i = 0;  i< 5; i++)cout<<stack.get()<<endl;stack.get();return 0;}



热点排行