zoukankan      html  css  js  c++  java
  • STL-list

    一、List的构造函数

        list<int>lis;//创建一个空list
        list<int>lis1(5);//创建一个大小为5的初始化为值为0的list{0,0,0,0,0}
        list<int>lis2(5,9);//创建一个大小为5,值都为9的list{9,9,9,9,9}
        list<int>lis3(lis2);//利用拷贝构造了一个lis2副本的list{9,9,9,9,9}
        list<int>lis4(lis3.begin(), lis3.end());//以区间创建了一个list{9,9,9,9,9}
        int a[] = { 1,3,5,2,4,6 };
        list<int>lis5(a,a+6);//以数组创建了一个list{1,3,5,2,4,6}
        //以输入流迭代器创建了一个list,其中第一个参数必须加(),否则创建的不是list而是一个函数声明
        list<int>lis6((istream_iterator<int>(cin)),istream_iterator<int>());

    二、List非变动操作

        lis.size();//返回lis中的当前元素个数
        lis.empty();//判断lis是否为空,空返回true;其效率高于lis.size(0);
        lis.max_size();//返回v最大容纳元素的个数
        lis == lis1;//判断lis是否等于lis1
        lis != lis1;//判断lis是否不等于lis1
        lis > lis1;//判断lis是否大于lis1
        lis < lis1;//判断lis是否小于lis1
        lis <= lis1;//判断lis是否小于等于lis1
        lis >= lis1;//判断lis是否大于等于lis1

    三、List赋值操作

        lis.assign(8, 10);//将n个值为elem的元素赋值给v
        lis.assign(lis1.begin(), lis1.end());//将lis1区间的元素赋值为lis
        lis = lis1;//将lis1赋值为lis
        lis.swap(lis1);//交换v与lis1的元素
        swap(lis, lis1);//同上,此为全局函数

    四、List元素读取

        lis.back();//返回最后一个元素,不检查最后一个元素是否存在
        lis.front();//返回第一个元素,不检查第一个元素是否存在

    五、List的相关迭代器函数

        lis.begin();//返回指向第一个元素的迭代器
        lis.end();//返回指向最后元素下一个位置的迭代器
        lis.rbegin();//返回指向最后一个元素的迭代器
        lis.rend();//返回指向第一个元素前一个位置的迭代器
        lis.cbegin();//返回指向第一个元素的常迭代器
        lis.cend();//返回指向最后元素下一个位置的常迭代器
        lis.crbegin();//返回指向最后一个元素的常迭代器
        lis.crend();//返回指向第一个元素前一个位置的常迭代器

    六、List的元素插入操作

        int elem = 2,n = 3;
        lis.push_back(elem);//在末尾插入元素
        lis.push_front(elem);//在头部插入元素
        lis.insert(lis.begin(), elem);//在某位置前插入元素
        lis.insert(lis.end(), n, elem);//在某位置前插入n个值为elem的元素
        lis.insert(lis.begin(), lis1.begin(), lis1.end());//在某位置前插入一段区间元素
      

    七、List的删除操作

        lis.pop_back();//末尾删除
        lis.pop_front();//头部删除
        lis.erase(lis.begin());//指定位置上的元素删除
        lis.erase(lis.begin(), lis.end());//指定区间中的元素删除
        lis.clear();//全部元素清除
        lis.remove(elem);//移除元素elem
        lis.remove_if(op);//移除所有满足条件op的元素值
        lis.resize(6);//将元素的数量改为形参数,如果其大于size则多出来的元素值由default构造完成,小于size截取后半段
        lis.resize(6, 10);//将元素的数量改为形参数,如果其大于size则多出来的元素值为elem,小于size截取后半段

    八、List特殊变动操作

        lis5.sort();//以operator<为准则,对所有元素排序
        lis5.unique();//如果存在若干相邻数值相等的元素,就移除重复元素;
        lis5.splice(lis5.end(), lis3);//将lis3的全部元素移动到lis5的pos位置前;
        lis5.merge(lis3);//若lis5与lis3包含相同类型元素,将lis3的全部元素转移到lis5,并保证合并后的lis5继续已序
    lis5.reverse();//将所有元素反转
  • 相关阅读:
    BlocksKit block从配角到主角—oc通往函数式编程之路--oc rx化?
    使用NSProxy和NSObject设计代理类的差异
    面向发布(部署)编程—热修复、动态库与补丁
    解释器就是虚拟机
    动态和多态的本质是对不确定性的解释机制
    c+多态的本质:编译器维护了类型信息同时插入了解释执行机制
    ios Aspects面向切面沉思录—面向结构编程—面向修改记录编程—面向运行时结构编程—元编程?
    知行合一的方法论
    面向运行时结构信息编程
    c++、oc、swift初步评价
  • 原文地址:https://www.cnblogs.com/dhhu007/p/13283367.html
Copyright © 2011-2022 走看看