#include iostream#include vector#include cstdlib#include string#include stdexcept
编程学习网为您整理以下代码实例,主要实现:C++类模板,希望可以帮到各位朋友。
#include <iostream>
#include <vector>
#include <cstdlib>
#include <string>
#include <stdexcept>
using namespace std;
template <class T>
class Stack {
private:
vector<T> elems; // elements
public:
voID push(T const&); // push element
voID pop(); // pop element
T top() const; // return top element
bool empty() const { // return true if empty.
return elems.empty();
}
};
template <class T>
voID Stack<T>::push (T const& elem) {
// append copy of passed element
elems.push_back(elem);
}
template <class T>
voID Stack<T>::pop () {
if (elems.empty()) {
throw out_of_range("Stack<>::pop(): empty stack");
}
// remove last element
elems.pop_back();
}
template <class T>
T Stack<T>::top () const {
if (elems.empty()) {
throw out_of_range("Stack<>::top(): empty stack");
}
// return copy of last element
return elems.back();
}
int main() {
try {
Stack<int> intStack; // stack of ints
Stack<string> stringStack; // stack of strings
// manipulate int stack
intStack.push(7);
cout << intStack.top() <<endl;
// manipulate string stack
stringStack.push("hello");
cout << stringStack.top() << std::endl;
stringStack.pop();
stringStack.pop();
} catch (exception const& ex) {
cerr << "Exception: " << ex.what() <<endl;
return -1;
}
}
沃梦达教程
本文标题为:C++类模板
猜你喜欢
- 使用最流行的转义序列 1970-01-01
- 打印扩展的ASCII字符 1970-01-01
- C语言可使用的所有转义序列 1970-01-01
- 使用来自float.h和limits的数据,找到该系统的一些 1970-01-01
- “纯虚函数调用"在哪里?崩溃从何而来? 2022-10-18
- 运算符优先级 1970-01-01
- C++指向数组的指针 1970-01-01
- C++浮点常数 1970-01-01
- 使用整数值初始化char类型的变量 1970-01-01
- C语言求模 1970-01-01