第九章 模板,迭代器,list,map,vector删除指定元素

数字相比较的模板

using namespace std;
template//声明一个空类型,X.一个抽象的数据类型。
X Max(X a,X b)//整形、浮点型都可以。通过实参类型可以得到真正的函数。
{
    return (a(x1,x2)<可以省略
}

类模板

using namespace std;
template
class Test
{
    X m_t1;//虚拟类型
    Y m_t2;
public:
    Test(X t1,Y t2)
    {
        m_t1=t1;
        m_t2=t2;
    }
    void show()
    {
        cout<<"T1 ="< t(10,'s');//这里的<>不能省略
    t.show();
}

类模板的升级:类外函数的使用

template
class Test
{
    X m_t1;
    Y m_t2;
public:
    Test(X t1,Y t2)
    {
        m_t1=t1;
        m_t2=t2;
    }
    void show()
    {
        cout<<"T1 ="<
void Test :: print()//这个是和Test的相关的函数,这里的不能缺少
{
    cout<<"T1 ="< t(10,'s');//这里的<>不能省略
    t.show();
    t.print();
}

迭代器

关键字iterator,vector

using namespace std;
vector v;//定义一个v,插入int型变量
int main()
{
/*  for(int i=0;i<11;i++)
    {
        v.push_back(i);//尾插,新建立类似于链表的东西
    }*/
    int elem;
    while(cin>>elem)
        v.push_back(elem);
    for(int j=0;j::iterator it=v.begin();it,it是指针,begin和end是迭代器的首地址和尾地址
    {
        cout<<*it<<"\t";//这个\t还必须加生“”
    }
    cout<::reverse_iterator it=v.rbegin();it

指针和迭代器关于const的应用

using namespace std;

int *p1;                 iterator i1;

const int *p2;           const_iterator i2;//指向的内容不能变

int const *p3;          const iterator i3;//指针不能变

const int *const p4;    const const_iterator i4;//都不能变

vector的一些使用案例

using namespace std;
void show(vector vi)
{
    vector::iterator it;
    it=vi.begin();
    while(it!=vi.end())
    cout<<*it++<<" ";
    cout< vi(3,90);//插入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:"<

list 的应用

#include
int main()
{
    int cpp[5]={3,6,1,7,5};
    int java[8]={1,2,3,4,5,6,7,8};
    int Unix[4]={5,2,3,11};
    list li;//list是容器
    li.insert(li.begin(),cpp,cpp+5);
    li.insert(li.begin(),java,java+8);
    li.insert(li.begin(),Unix,Unix+4);
    li.sort();//排序
    li.unique();//去重,要和排序一起使用
    li.reverse();//翻转,就是原本是从小到大排序,后来就从大到小

    list::iterator //iterator是list里面的一个类,是迭代器
    it=li.begin();
    while(it!=li.end())
    cout<<*it++<<' ';
    cout<
#include
int main()
{
    list l1;
    int a[5]={3,4,5,6,7};
    list l2(a,a+5);
    cout<<"l1.size():"<::iterator it;//创建一个迭代器,它的名字叫it
    for(it=l2.begin();it!=l2.end();it++)
    cout<<*it<<' ';

    it=l2.begin();
    it++;//it指向第二个
    l2.erase(it);删除第二个
    l2.insert(l2.begin(),100);//头插
    l2.insert(l2.end(),200);//尾插
    for(it=l2.begin();it!=l2.end();it++)
    cout<<*it<<' ';
    cout<

map

int main()
{
    mapmis;

    mis.insert(make_pair(62,"东方不怕"));//创建对象
    mis.insert(make_pair(32,"岳不群"));
    mis.insert(make_pair(36,"林平之"));

    mis[20]="劳德罗";//这里的20不是下标,就是和上面的int型一样
    map::iterator it;
    it = mis.begin();

    while(it!=mis.end())
    {
        cout<first<<":"<second<

用vector删除指定的元素

using namespace std;
#include
#include
#include
vectornum;
int main()
{
    
    int element;
    while(cin>>element)
    {
        num.push_back(element); 
    }
    for(vector::iterator it1 = num.begin();it1::iterator it2 = num.begin();it2

const在类中的使用

class Test
{
    int m_t;
public:
    Test(){}//这个还不能省略
    void lianxi()const  //const加这个位置表示成员变量不能改变
    {
        cout<<"alex is a cool boy"<

你可能感兴趣的:(第九章 模板,迭代器,list,map,vector删除指定元素)