日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > php教程 > 每日一題18:棧

每日一題18:棧

來源:程序員人生   發(fā)布時(shí)間:2015-04-29 08:36:39 閱讀次數(shù):2418次

用C++寫了1個(gè)棧模板,其間用了1些《Effective C++》的準(zhǔn)則,記錄在這里嘍。這個(gè)類還沒有做到異常安全,以后改進(jìn)!
Stack.h文件。

#ifndef _STACK_H_ #define _STACK_H_ namespace MyDataStructure { template <typename T> class Stack { private: int Capacity; int Top; T* Vals; bool null() { return Capacity == 0; } void init(int capacity) { Capacity = capacity; Top = 0; Vals = new T[capacity]; } void copy(const Stack& s) { Capacity = s.Capacity; Top = s.Top; Vals = NULL; if(s.Capacity != 0) { Vals = new T[Capacity]; memcpy(Vals,s.Vals,Capacity*sizeof(T)); } } void destroy() { if(Vals != NULL) delete []Vals; Top = 0; Capacity = 0; } public: Stack() : Capacity(0),Top(0),Vals(NULL){}; Stack(int capacity) :Capacity(capacity),Top(0) { Vals = new T[capacity]; } Stack(const Stack& s) { copy(s); } Stack& operator = (const Stack& s) { if(this == &s) return *this; destroy(); copy(s); return *this; } ~Stack() { destroy(); } bool resize(int capacity) { if(capacity <= 0) return false; if(capacity == Capacity) return true; if(!null()) { T* vals = new T[capacity]; if(capacity >= Top) { memcpy(vals,Vals,Top*sizeof(T)); } else { memcpy(vals,Vals,capacity*sizeof(T)); Top = capacity; } Capacity = capacity; delete []Vals; Vals = vals; } else init(capacity); return true; } bool push(T val) { if(!full() && !null()) { Vals[Top++] = val; return true; } return false; } bool pop(T& val) { if(!null() && !empty()) { val = Vals[--Top]; return true; } return false; } bool top(T &val) { if(!null() && !empty()) { val = Vals[Top - 1]; return true; } return false; } void clear() { Top = 0; } void size() { return Top; } bool empty() { return Top == 0; } bool full() { return Top == Capacity; } }; } #endif

下面是測試函數(shù):
StackTest.cpp

// StackTest.cpp : 定義控制臺(tái)利用程序的入口點(diǎn)。 // #include "stdafx.h" #include "Stack.h" #include <iostream> using namespace MyDataStructure; using namespace std; int _tmain(int argc, _TCHAR* argv[]) { Stack<int> s1(10); for (int i = 1; i < 11; ++i) { s1.push(i); } Stack<int> s2(s1); s1.resize(20); for (int i = 1; i < 11; ++i) { int val; if(s1.pop(val)) { cout<<val<<' '; } } cout<<endl; for (int i = 1; i < 11; ++i) { int val; if(s2.pop(val)) { cout<<val<<' '; } } cout<<endl; return 0; }
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 中文字幕精品三区 | 久久久穴 | 日韩中文字幕在线播放 | 91国内精品 | 精品2区 | 亚洲精品资源 | 久久久久久国产精品 | 国产日韩精品一区二区三区 | 黄网址在线免费观看 | 少妇av一区二区三区 | 精品国产乱码久久久久久牛牛 | 黄色av大全 | av高清在线观看 | 国产精品色在线网站 | 日本大片免a费观看视频的特点 | 91啪影院| 伊人天天 | 国内毛片毛片 | 亚洲首页在线 | 欧美激情网站 | 亚洲精品之草原avav久久 | 中文在线一区二区 | 搞黄视频在线看 | 9999精品| 99久久免费精品视频 | 夜夜导航 | 色综合久久88色综合天天6 | 久久国产精品一区二区 | 久久精品国产亚洲一区二区三区 | 五月婷婷激情综合 | 日本乳首の奶水在线观看视频 | 激情五月综合网 | 欧美一级xxx | 日日夜夜亚洲 | 毛片com| 毛片av在线 | 久久久久久九九 | 久久久久久久久久电影 | 久久精品欧美 | 成人在线网址 | 狠狠色综合欧美激情 |