首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++ 模板 运用 及其优缺点

2013-09-08 
c++模板 使用及其优缺点使用模板的目的:模板是C标准中相当重要的一部分,它是通用编程成为现实的理想方法。

c++ 模板 使用 及其优缺点


使用模板的目的:

模板是C++标准中相当重要的一部分,它是通用编程成为现实的理想方法。模板还有在编译时被解释的特点。模板是对迅速解决复杂问题有效手段,特别是标准模板类库

使用模板的优缺点:

(1)    优点 : 1)编写一个模板,就可以在实例化的时候 由一个模板解决不同类型数据所产生的相同问题;比如说排序问题,你可以给int 数据排序和cha类型数据排序,没有引入类模板,就需要编写两次排序函数,而引入类模板之后,就可以在实例化的时候,根据不同的数据类型实例化排序方法,做到一模板半多用的作用,即多态。

2)实现了代码的重用,节约了程序员时间和精力,这也是出现标准库的原因

(2)     缺点:1)模板的数据类型只能在编译时才能被确定。因此,所有用基于模板算法的实现必须包含在整个设计的头文件中。

2)由于模板只是最近加入C++标准中,所以有些C++编译器还不支持模板,当使用这些编译器时编译含有模板的代码时就会发生不兼容问题。

关于模板的例子

(1)函数模版

#include<iostream>#include"stack.h"using namespace std;int main() {  stack<int> i_stack;  stack<char> c_stack(5);     int i,n,int_data;    char char_data;    bool success;    c_stack.push('a');   c_stack.push('b');   c_stack.push('c');        n= i_stack.stack_size();     for( i = 0; i < n ; i ++ )       { i_stack.push(i); }    cout<<"character stack data: "<<endl;   n=c_stack.number_stacked();    for( i= 0; i <n ; i ++ )       {         success = c_stack.pop (char_data);           if( success )               cout<<char_data<<'';       }     cout<<endl;     cout<<"integer stack data: "<<endl;    n = i_stack.number_stacked();    for( i= 0; i <n ; i ++ )       {         success = i_stack.pop (int_data);           if( success )               cout<<int_data<<' ';       }     cout<<endl;     return 0; }


 


热点排行