zoukankan      html  css  js  c++  java
  • C++ STL之list具体解释

    list容器是一个双向链表,能够高效地进行插入删除元素。

    构造函数

    list<Elem> c;//空list
    list<int> c(3);//创建一个含有三个默认值是0的元素的链表
    list<int> c(5,2);//创建一个含有五个元素的链表。值都是2

    成员函数

    c.begin();//返回指向链表第一个元素的迭代器
    c.end();//返回指向链表最后一个元素之后的迭代器
    c.rbegin();
    c.rend();//反向迭代器
    c.front();//返回链表c的第一个元素
    c.back();//返回链表c的最后一个元素
    c.empty();//推断链表是否为空
    c.size();//返回链表c中实际元素的个数
    c.clear();//清空链表

    插入和删除

    c.insert(pos,num);//在pos位置插入元素num
    c.insert(pos,n,num);//在pos位置插入n个元素num
    c.erase(pow);//删除pos位置的元素
    
    c.push_back(num);//在末尾添加一个元素
    c.pop_back();//删除末尾的元素
    c.push_front(num);//在開始位置添加一个元素
    c.pop_front();//删除第一个元素

    其它

    c.reverse();//翻转链表
    c.sort();//将链表排序,默认升序
    c.sort(cmp);//自己定义小于函数

    Demo

    #include <iostream>
    #include <list>
    using namespace std;
    list<int> l;
    void printl()
    {
        list<int>::iterator it;
        for(it = l.begin() ; it != l.end() ; it ++) {
            cout << *it << endl;
        }
        cout << "" << endl;
    }
    int main()
    {
        l.push_front(1);//1
        l.push_back(2);//1->2
        printl();//1->2
        list<int>::iterator it = l.begin();
        it ++;
        l.insert(it,4);
        printl();//1->4->2
        l.reverse();
        printl();//2->4->1
        return 0;
    }
    
  • 相关阅读:
    SQL Server中游标的使用
    SQL Server之内连接 左连接 右连接 全连接 交叉连接
    C#后台格式化JSON字符串显示
    使用反射、特性简化代码
    JQuery方法扩展
    .NET强制进行即时垃圾回收
    .NET中的Queue和Stack
    如何解决firefox下window.event的问题
    【JS对象、JSON字符串】之间的相互转换
    Javascript模块化编程(一):模块的写法
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7149787.html
Copyright © 2011-2022 走看看