类模板

最后更新于:2022-04-02 02:07:53

[TOC] ## 概述 格式: ``` template class class-name { // ... } ``` 实例 ``` #include #include #include #include #include using namespace std; template class Stack { private: vector elems; // 元素 public: void push(T const&); // 入栈 void pop(); // 出栈 T top() const; // 返回栈顶元素 bool empty() const{ // 如果为空则返回真。 return elems.empty(); } }; template void Stack::push (T const& elem) { // 追加传入元素的副本 elems.push_back(elem); } template void Stack::pop () { if (elems.empty()) { throw out_of_range("Stack<>::pop(): empty stack"); } // 删除最后一个元素 elems.pop_back(); } template T Stack::top () const { if (elems.empty()) { throw out_of_range("Stack<>::top(): empty stack"); } // 返回最后一个元素的副本 return elems.back(); } int main() { try { Stack intStack; // int 类型的栈 Stack stringStack; // string 类型的栈 // 操作 int 类型的栈 intStack.push(7); cout << intStack.top() <::pop(): empty stack ```
';