#include<iostream>
using namespace std;
void main()
{
string s1;
string s2("123456789");
string s3(s2);
string s4(s2,3);
string s5(s2,2,5);
string s6(5,'c');
string s7(s2.begin(),s2.end());
cout<<s1<<endl;
cout<<s2<<endl;
cout<<s3<<endl;
cout<<s4<<endl;
cout<<s5<<endl;
cout<<s6<<endl;
cout<<s7<<endl;
char cs[]='abcdefghi';
string ss3(cs);
string ss4(cs,3);
string ss5(cs,2,5);
cout<<ss3<<endl;
cout<<ss4<<endl;
cout<<ss5<<endl;
system("pause");
}
函数模板实例
int max(int a,int b)
{return (a>b)?a:b;}
template<class T>
T Max(T a,T b)
{return (a>b)?a:b;}
函数模板中使用多种类型
#include<string>
#include<iostream>
using namespace std;
template<class T1,class T2>
void Swap( T1&a,T2&b )
{
T1 t;
t=a;
a=T1(b);
b=T2(t);
}
void main()
{ int x=5;
char y='c';
cout<<x<<","<<y<<endl;
Swap(x,y);
cout<char(x)<<","<<int(y)<<endl;
system("pause");
}
#include<string>
#include<iostream>
using namespace std;
template <class T>
class Stack
{
T stk[10];
int top;
pulic:
Stack() {top=-1;}
void push(T ob);
T pop();
};
template <class T>
void Stack<T>::push(T ob)
{
if (top==n-1)
{
cout<<"Stack full";
return ;
}
stk[++top]=ob;
};
template <class T>
void Stack<T>::pop()
{
etif (top<0)
{
cout<<"Stack empty";
return(0);
}
return stk[top--];
};
int main()
{
Stack <char> s1;
Stack <int> s2, *sp=&s2;
s1.push('a');
s1.push('b');
s1.push('c');
cout<<"pop s1:";
}