• 4、【C++ STL】容器总结


    一、容器的共通能力

      1、所有容器提供的都是value语义,而非reference语义,容器执行插入元素的操作时,内部实施拷贝动作。所以STL容器内存储的元素必须能够被拷贝(必须提供拷贝构造函数);

      2、每个容器都提供可返回迭代器的函数,运用返回的迭代器就可以访问元素。

      3、通常STL不会丢出异常。要求使用运行者对确保传入正确的参数。

    二、容器的共通操作

    1、初始化

      每个容器都提供了一个默认构造函数,一个拷贝构造函数。

    1 list<int> l;
    2 ...
    3 vector<int> ivec(l.begin(), l.end());//以某个容器的元素为初值完成初始化
    4 
    5 int array[] = {1, 2, 3, 4, 5};
    6 ...
    7 set<int> iset(array, array+sizeof(array)/sizeof(array[0]));//以某个数组的元素为初值完成初始化

    2、与大小相关的操作函数

    1 c.size()  //传回容器中的元素数量
    2 c.empty)() //判断容器是否为空(相当于size() == 0,但可能更快)
    3 c.max_size() //传回元素的最大可能数量

    3、返回迭代器的函数

    1 c.begin()   //传回一个迭代器,指向第一个元素
    2 c.end()     //传回一个迭代器,指向最后元素的下一个位置
    3 c.rbegin()  //传回一个逆向迭代器,指向逆向寻访时的第一元素
    4 c.rend()    //传回一个逆向迭代器,指向逆向寻访时的最后一个元素的下一个位置

    4、比较操作

    1 c1 == c2    //判断是否c1 等于 c2
    2 c1 != c2    //判断是否c1 不等于 c2,相当于!(c1 == c2)
    3 c1 < c2     //判断是否c1 小于 c2
    4 c1 > c2     //判断是否c1 大于 c2
    5 c1 <= c2    //判断是否c1 小于等于 c2
    6 c1 >= c2    //判断是否c1 大于等于 c2
    7 c1 = c2     //将 c2  的所有元素指派个 c1
  • 相关阅读:
    php利用__callStatic静态调用同类中非静态方法
    Using $this when not in object context错误原因及解决办法
    fastadmin权限修改
    call_user_func()
    php empty()奇怪现象
    LF will be replaced by CRLF in vendor/
    git放弃本地,强制拉取远程
    tp5防xss攻击方法
    php curl
    关于Mac设置alias别名访问服务器
  • 原文地址:https://www.cnblogs.com/Long-w/p/9817222.html
Copyright © 2020-2023  润新知