自定义线性表
最近使用开发的过程中出现了一个小问题,顺便记录一下原因和方法--
#include<iostream> using namespace std; template<typename t> struct tcontainer { virtual void push(const t&)=0; virtual void pop() = 0; virtual const t& begin() = 0; virtual const t& end() =0; virtual size_t size() = 0; }; template<typename t> struct tvector:public tcontainer<t> { static const size_t _step = 100; tvector() { _size = 0; _cap = _step; buf = NULL; re_capacity(_cap); } ~tvector() { free(buf); } void re_capacity(size_t s) { if(!buf) buf = (t*)malloc(sizeof(t)*s); else buf = (t*)realloc(buf,sizeof(t)*s); } virtual void push(const t& v) { if(_size>=_cap) re_capacity(_cap+=_step); buf[_size++] = v; } virtual void pop() { if(_size) _size--; } virtual const t& begin() { return buf[0]; } virtual const t&end() { return buf[_size-1]; } virtual size_t size() { return _size; } const t& operator[] (size_t i) { if(i>=0&&i<_size) return buf[i]; } private: size_t _size; size_t _cap; t*buf; }; int main() { tvector<int> v; for(int i=0;i<1000;i++) v.push(i); for(int i=0;i!=1000;i++) cout<<v[i]<<endl; }
文章结束给大家分享下程序员的一些笑话语录: 自行车
一个程序员骑着一个很漂亮的自行车到了公司,另一个程序员看到了他,问 到,“你是从哪搞到的这么漂亮的车的?”
骑车的那个程序员说, “我刚从那边过来, 有一个漂亮的姑娘骑着这个车过来, 并停在我跟前,把衣服全脱了,然后对我说,‘你想要什么都可以’”。
另一个程序员马上说到, “你绝对做了一个正确的选择, 因为那姑娘的衣服你 并不一定穿得了”。