template<class X>
template<typename X>
聲明一個X為抽象類型的類
用的時候是 模板+實參類型=具體函數(shù)
#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); //清除之前的內(nèi)容弟晚,并賦值給該容器
show(vi);
cout<<"size:"<<vi.size()<<endl;
}