zoukankan      html  css  js  c++  java
  • STL2、容器的共通操作

    每个容器都有很多操作,以下操作为所有容器共有的

    一.构造,拷贝和析构

    ContType <Elem> c

    创建一个空容器,其中没有任何元素

    ContType <Elem> c1(c2)

    创建一个同种类形容器的一个copy

    ContType <Elem> c(beg,end)

    创建一个容器,以区间[beg,end)做为元素初值

    c.~ContType <Elem>()

    销毁所有元素,并释放内存


    二.与大小相关的操作

    c.size()

    返回当前的元素数量

    c.empty()

    返回 bool 型,判断容量是否为0。 等同与 size()==0, 但可能更快

    c.max_size()

    返回可容纳元素的最大数量,很大一个数

     例子:

    1. #include <iostream>   
    2. #include <vector>   
    3. using namespace std;  
    4.   
    5. int main(int argc, char* argv[])  
    6. {  
    7.     vector<int> col(10);  
    8.       
    9.     cout << col.size() << endl; //10   
    10.       
    11.     if (col.empty()) //bool 型   
    12.     {  
    13.         cout << "empty"<<endl;  
    14.     }  
    15.       
    16.     cout<<col.max_size()<<endl; //很大一个数   
    17.   
    18.     return 0;  
    19. }  
    #include <iostream>
    #include <vector>
    using namespace std;
    
    int main(int argc, char* argv[])
    {
        vector<int> col(10);
        
        cout << col.size() << endl; //10
        
        if (col.empty()) //bool 型
        {
            cout << "empty"<<endl;
        }
        
        cout<<col.max_size()<<endl; //很大一个数
    
        return 0;
    }

    三.比较操作

    c1 == c2

    判断 c1 是否等于 c2

    c1 != c2

    判断 c1 是否不等于 c2

    c1 < c2

    判断 c1 是否小于 c2

    c1 > c2

    判断 c1 是否大于 c2

    c1 <= c2

    判断 c1 是否小于等于 c2

    c1 >= c2

    判断 c1 是否大于等于 c2

    四.赋值操作

    c1 = c2

    将c2的全部元素赋值给c1,c1与c2必须是同种类型

    五.交换操作

    c1.swap(c2)

    将c1和c2元素互换

    swap(c1,c2)

    同上,是个全局函数

    六.迭代器相关

    c.begin()

    返回一个随机存取迭代器,指向第一个元素

    c.end()

    返回一个随机存取迭代器,指向最后元素的下一个位置

    c.rbegin()

    返回一个逆向迭代器,指向逆向迭代的第一元素,也就是最后一个元素

    c.rend()

    返回一个逆向迭代器,指向逆向迭代的最后元素的下一个位置,也就是第一个元素的前一个位置

     注意:*c.end*c.rend都是没有定义的

    七.插入与删除

    c.insert(pos,elem)

    在pos位置插入一个elem副本,并返回新元素位置

    c.erase(beg,end)

    移除 [beg,end) 区间内的所有元素,返回下一元素的位置

    c.clear()

    移除 所有元素,将容器清空

  • 相关阅读:
    vtk 矩阵管理系统
    在opengl中使用纹理
    [译文]:单元测试的七种境界
    [翻译]:六分钟八法则塑造优秀程序员
    weekly review 200921: Power Sleep
    Bye, Scofield
    weekly review 200922: Goal
    weekly review 200920: Prototype Demo
    转载:测试驱动开发三原则
    weekly review 200918: productive
  • 原文地址:https://www.cnblogs.com/xiao-wei-wei/p/3142019.html
Copyright © 2011-2022 走看看