template<class X>
template<typename X>
声明一个X为抽象类型的类
用的时候是 模板+实参类型=具体函数
#include<iostream>
using namespace std;
template<class X>
X Max(X a,X b)
{
return(a>b?a:b);
}
int main()
{
int X1=20;
int X2=30;
cout<< Max<int>(X1,X2)<<endl; //此处<int>可以带也可以不带,建议加上
double a=10.56789;
double b=10.56781;
cout<< Max<double>(a,b)<<endl;
}
#include<iostream>
using namespace std;
template<class X,class Y>
class Test
{
X m_t1;
Y m_t2;
public:
Test(X t1,Y t2)
{
m_t1=t1;
m_t2=t2;
}
void show()
{
cout<<"T1="<<m_t1<<endl<<"T2="<<m_t2<<endl;
}
void print();
};
template<class X,class Y> //必须如此。。。最好用show类型的来定义
void Test<X,Y>::print()
{
cout<<"T1="<<m_t1<<endl<<"T2="<<m_t2<<endl;
}
int main()
{
Test<int,char>t(10,'s');
t.show();
t.print();
}
cin输入,只有类型不符才会返回0
迭代器和指针const的用法对比
iterator i1; int *p1;
const_iterator i2; const int *p2;
const iterator i3; int *const p3;
const const_iterator i4; const int* const p4;
容器的建造与一些命令的应用
#include<iostream>
#include<vector>
using namespace std;
void show(vector<int>vi)
{
vector<int>::iterator it;
it=vi.begin();
while(it!=vi.end())
cout<<*it++<<' ';
cout<<endl;
}
int main()
{
vector<int>vi(3,90);
show(vi);
int a[5]={3,4,5,6,7};
vi.insert(vi.begin(),a,a+5);
show(vi);
vi.push_back(100);
show(vi);
cout<<"size:"<<vi.size()<<endl;
vi.assign(5,99); //清除之前的内容,并赋值给该容器
show(vi);
cout<<"size:"<<vi.size()<<endl;
}