C++ list

  • 定义

    1、list 是顺序容器,是一个双向链表,无序;
    2、不支持[ ] 操作符和vector.at() ;
    3、list 的缺点是无法通过位置来直接访问序列中的元素;

  • 用法

    1、创建

    list<string> test;
    

    2、初始化

    list<int> lst1;          //创建空list
    list<int> lst2(5);      //创建含有5个元素的list,每个元素值为0
    list<int>lst3(3,2);     //创建含有3个元素的list,每个元素值为2
    list<int>lst4(lst2);    //使用lst2初始化lst4
    list<int>lst5(lst2.begin(),lst2.end());  //同lst4
    

    3、新增

    test.insert() //插入一个元素到list中
    iterator insert( iterator pos, const value_type value);
    void insert( iterator pos, int n, const value_type value);
    void insert( iterator pos, InputIterator first, InputIterator last);
    
    
    test.push_back(value) //在list的末尾添加一个元素value
    test.push_front(value) //在list的头部添加一个元素value
    

    4、删除

    test.clear() //删除所有元素
    test.erase(iter) //删除一个元素,参数是迭代器iter
    
    test.remove(const T& x) //从list删除和X相同的元素
    

    5、迭代器

    test.begin() //返回指向第一个元素的迭代器
    test.end()   //返回末尾的迭代器
    
    test.rbegin() //它返回一个反向迭代器,该迭代器指向列表的最后一个元素
    test.rend()   //它返回一个反向迭代器,该迭代器指向列表开头之前的位置
    for (auto it = lis.rbegin(); it != lis.rend(); ++it) 
        cout << *it << " "; 
    

    6、查询

    test.back()      //返回最后一个元素
    test.front()     //返回第一个元素
    test.pop_back()  //删除最后一个元素
    test.pop_front() //删除第一个元素
    

    7、判空和大小

    test.empty() //如果list是空的则返回true
    test.size()  //返回list中的元素个数
    

    8、翻转

    list<int> test;
    test.reverse()  //把list的元素倒转
    

    9、合并

    test.merge() //合并两个list
    list2.merge(list1);
    

    10、排序、删除重复元素

    test.sort()   //给list排序
    test.unique() //删除list中重复的元素
    

    11、 其他常见的用法

    	test.assign() //给list赋值
    	test.max_size() //返回list能容纳的最大元素数量
    	test.remove_if() //按指定条件删除元素
    	test.resize() //改变list的大小
    	test.splice() //合并两个list
    	test.swap() //交换两个list
    	
    

你可能感兴趣的:(STL,c++,开发语言)