#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
- 用指数格式表示浮点数 1970-01-01
- C语言数组 1970-01-01
- 迭代std :: bitset中真实位的有效方法? 2022-10-18
- C++:为什么结构类需要一个虚拟方法才能成为多态? 2022-10-19
- C语言3个整数的数组 1970-01-01
- 对 STL 容器的安全并行只读访问 2022-10-25
- 向量<unique_ptr<A>>使用初始化列表 2022-10-23
- 明确指定任何或所有枚举数的整数值 1970-01-01
- C++多态 1970-01-01