泛型编程STL

容器概述

容器分为三大类

1.顺序容器

         vector :后部插入/删除 直接访问

         deque :前/后插入/删除 直接访问

          list :双向链表 任意位置插入删除

2.关联容器

          set : 快速查找 ,我重复元素。

          multiset : 快速查找,可有重复元素。

          map:一对一映射 ,无重复元素,基于关键字查找。

前两者容器可称为第一类容器。

3. 容器适配器。

stack: LIFO

queue: FIFO

priority_queue :优先级高的元素先出。

set/multimap   头文件<set>

map/multimap 头文件<map>

上述的4种容器常常以平衡二叉树的方式实现,插入和检索的时间都是O(logN)。

容器适配器简介:

1.stack  下先进后出的原则。

2.queue 先进先出。

3.priority_queue  有衔接队列,优先级最高的第一个出列。

1.所有标准容器都共有的的函数

        empty 判断是否有元素

        max_size 容器中最多能装多少元素

        size 容器总的元素个数

        swap 交换两个容器的内容

2.第一类容器的成员函数

        begin  返回指向容器中第一个元素的迭代器

        end    返回 指向容器最后一个元素的迭代器

        rbegin 返回指向容器的第一元素前面位置的迭代器

         rend 返回指向容器最后一个元素后面位置的迭代器

         erase 从容器中删除一个或者几个元素

         clear 从容器中删除所有元素

迭代器

第一一个容器的迭代器的方法可以是

容器类名::iterraor 变量名  ;

或者  容器类名:: const_iterraor;

迭代器的用法

#include<vector>

#include<iostream>

using namespace std;

int main(void)

{

         vector<int> v;//创建存放int 的向量 ,一开始里面没有元素

         v.push_back(1);

         v.push_back(2);

         v.push_back(3);

         v.push_back(4);

          vertor<int >::const_iterator;//常量  迭代器      

          for(i = v.begin();i!v.end();i++)

           {

                   cout<<*i<<".";

            }

            cout<<endl;

            vertor<int>::reverse_itrator r;//反向迭代器

              for(r = v,begin();  r!v.rend();r++)

                           cout<<*r<<'.';

                             cout <<endl;

             vector <int >::itertor j;//非常量迭代器

             for(j = v.begin(); j!= v.end();j++)

                           *j = 100;

            for(i = v.begin(); i!=v.end();i++)

                           cout<<*<<",";

}

vector 是随机的迭代器便利有以下的几种做法

vertor<int> v (100)

vector<int>::value_type i;

for(i = 0;i<v.size(),i++)

{

         cout<<v[i];

}     

vector<int >::const_itrator ii;

for(ii = v.begin();ii != v.end();ii++)

{

         cout<<ii;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值