惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - Rawu

QT 使用(1) 到广外路线图 假期电话值班问题 test from blogex Event Sample -- from Professional C# DB2数据库中提高INSERT性能详解 [zt] Uwyn C++ Coding Standard 成员模板 template base -- const coding style Symbian OS C++ for Mobile Phones Volume2 -- hand note [zt]DB2编程小结 写个帖子记录一些小问题。 High-performance SQL Using DB2 routines to ease migration [ICNEWCASTLE]Bad day at the office [ICNEWCASTLE]I'll celebrate! the night before last night 's dream find it for a long time .. PB dddw filter Problem's Solution
class template
Rawu · 2006-06-08 · via 博客园 - Rawu

//basic/stack3.hpp

#include 
<vector>
#include 
<stdexcept>

template
<typename T ,typename CONT = std::vector<T> > // type a space between twp '>'

class Stack 
{
    
private:
        CONT elems;            
//contain the elems ,default is vector
        static int static_ver; // this static variable will instantiation in each different types of template is called 
    
    
public:
        
void push(T const&) ;
        
void pop(void);
        T top(
voidconst ;         //why not return T &
        bool empty(voidconst
        
{
            
return elems.empty();
        }

        Stack (Stack
<T,CONT> const&);  //use Stack<> when you need to specify the class type
                                       
//use only Stack when you only want to specify the class name                            
        Stack<T,CONT>& operator= (Stack<T,CONT> const&) ;
        
}
;

template
<typename T ,typename CONT>
void Stack<T,CONT>::push ( T const& elem ) //use Stack<>::
{
    elems.push_back(elem);
}


template
<typename T ,typename CONT>
void Stack<T,CONT>::pop(void)            //why not specify throw 
{
    
if(elems.empty())
    
{
        
throw std::out_of_range("Stack<>::pop(): empty stack");
    }

    elems.pop_back();
}


template
<typename T ,typename CONT>
T Stack
<T,CONT>::top(voidconst
{
    
if (elems.empty())
    
{
        
throw std::out_of_range("Stack<>::top(): empty stack");
    }

    
return elems.back();
}

//basics/stack3test.cpp


#include 
<iostream>
#include 
<deque>
#include 
<cstdlib>
#include 
"stack3.hpp"

int main(void)
{
    
try
    
{
      Stack
<int> intStack;
      intStack.push(
7)  ;  // only instantiation the function when it's called 
                           
// so you can use the 'type' that cannot perform all method in this template ,but only can perform the method you will use in your application.
      std::cout<< intStack.top() <<std::endl;
      intStack.pop();
      intStack.pop();
      std::cin.
get();
      
    }

    
catch (std::exception const& ex)
    
{
          std::cerr
<<"Exception: "<<ex.what()<<std::endl;
          std::cin.
get();
          
return EXIT_FAILURE;
    }

}