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

推荐订阅源

云风的 BLOG
云风的 BLOG
Security Archives - TechRepublic
Security Archives - TechRepublic
V
Vulnerabilities – Threatpost
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Proofpoint News Feed
G
GRAHAM CLULEY
P
Privacy International News Feed
The Hacker News
The Hacker News
Forbes - Security
Forbes - Security
U
Unit 42
N
News and Events Feed by Topic
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
Cyber Attacks, Cyber Crime and Cyber Security
C
Cisco Blogs
A
About on SuperTechFans
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
D
Docker
I
Intezer
Spread Privacy
Spread Privacy
The Last Watchdog
The Last Watchdog
V2EX - 技术
V2EX - 技术
S
Security @ Cisco Blogs
F
Full Disclosure
S
Secure Thoughts
M
MIT News - Artificial intelligence
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
aimingoo的专栏
aimingoo的专栏
W
WeLiveSecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Project Zero
Project Zero
Recorded Future
Recorded Future
Cyberwarzone
Cyberwarzone
S
Security Affairs
AWS News Blog
AWS News Blog
H
Help Net Security
The GitHub Blog
The GitHub Blog
Hacker News: Ask HN
Hacker News: Ask HN
Vercel News
Vercel News
P
Proofpoint News Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
The Register - Security
The Register - Security
S
Schneier on Security
F
Fortinet All Blogs
C
CERT Recently Published Vulnerability Notes
L
LINUX DO - 最新话题
T
Tor Project blog
T
The Exploit Database - CXSecurity.com
MongoDB | Blog
MongoDB | Blog
Webroot Blog
Webroot Blog

博客园 - 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;
    }

}