知识屋:更实用的电脑技术知识网站
所在位置:首页 > 社会

C++基础总结(六):C++进阶

发表时间:2022-03-25来源:网络

今天小编分享 C++ 模板和STL入门 ,建议大家收藏慢慢学习,同时希望对大家的C++学习有所帮助。

C++ 模板

模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。

模板是创建泛型类或函数的蓝图或公式。库容器,比如迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念。

每个容器都有一个单一的定义,比如 向量,我们可以定义许多不同类型的向量,比如 vector 或 vector 。

您可以使用模板来定义函数和类,接下来让我们一起来看看如何使用。

函数模板

模板函数定义的一般形式如下所示:

template ret - type func - name ( parameter list ) { // 函数的主体  }

在这里,type 是函数所使用的数据类型的占位符名称。这个名称可以在函数定义中使用。

下面是函数模板的实例,返回两个数中的最大值:

实例

#include#includeusing namespace std;

templateinline T const & Max ( T const & a,T const & b) {

return a

private:

vectorelems;

// 元素 

 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 int

Stack; // int 类型的栈 

 Stack string Stack; 

 // string 类型的栈 

 // 操作 int 类型的栈

 int Stack.push(7); 

 cout

// 创建一个向量存储 int 

 vector vec; 

 int i;

 // 显示 vec 的原始大小 

 cout

收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜