Chinaunix首页 | 论坛 | 博客
  • 博客访问: 189295
  • 博文数量: 54
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 630
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-02 18:41
文章分类

全部博文(54)

文章存档

2011年(1)

2009年(30)

2008年(23)

我的朋友

分类: C/C++

2009-03-20 18:01:04

头文件:

list:是一个双向链表容器,完成了标准C++数据结构中链表的所有功能,对任意元素的访问与两端的距离成正比,但对某个位置上插入和删除一个项的花费为常数时间。

list类的主要成员
    value_type;    //对象类型T,存储在list中 [定义地方:容器]
    pointer;    //指向T的指针 [容器]
    reference;    //T的引用 [容器]
    const_reference;    //T的常量引用 [容器]
    size_type;    //正整数类型 [容器]
    difference_type;    //整数类型 [容器]
    iterator ;    //访问list的迭代器 [容器]
    const_iterator;    //访问list的常量迭代器 [容器]
    reverse_iterator;    //访问list的反向迭代器 [Reversible容器]
    const_reverse_iterator;    //访问list的反向迭代器 [Reversible容器]
    iterator begin();    //返回list的头指针 [容器]
    iterator end();    //返回list的尾指针 [容器]
    const_iterator begin() const;    //返回list的常量头指针 [容器]
    const_iterator end() const;    //返回list的常量尾指针 [容器]
    reverse_iterator rbegin();    //返回反向list的反向头指针 [Reversible容器]
    reverse_iterator rend();    //返回反向list的反向尾指针 [Reversible容器]
    size_type size() const;    //返回list的元素数量 [容器]
    size_type max_size() const;    // 返回最大可允许的list元素数量值 [容器]
    bool empty() const;    //判断list是否为空 [容器]
    reference operator[](size_type n);     //返回第n个元素 [Random Access容器]
    const_reerence operator[](size_type n)const;     //返回第n个元素[Random Access容器]
    list();    //创建一个空list [容器]
    list(size_type n);    //创建一个list,元素数量为n [Sequence]
    list(size_type n, const T& t);    //创建一个list,元素数量为n,大小都为t [Sequence]
    list(const list &);    //拷贝构造函数 [容器]
    templatelist(InputIterator, InputIterator);     //采用拷贝的方法创建一个list,指定了范围[Sequence]
    ~list();    // list的析构函数 [容器]
    list& operator=(const list&);    //=运算符重载 [容器]
    reference front();    // 返回第一个元素 [Sequence]
    const_reference front() const;    //返回第一个元素 [Sequence]
    reference back();    //返回最后一个元素 [Back Insertion Sequence]
    const_reference back() const;    //返回最后一个元素 [Back Insertion Sequence]
    void push_back(const T&);    //在list尾部插入一个元素 [Back Insertion Sequence]
    void pop_back();    //删除最后一个元素 [Back Insertion Sequence]
    void swap(list&);    //交换两个list的内容 [容器]
    iterator insert(iterator pos, const T& x);    //在pos前出入x [Sequence]
    templatevoid insert(iterator pos, InputIteratorf, InputIterator I);    //在位置pos位置前插入范围为[fisrt, last]的元素 [Sequence]
    void insert(iterator pos, size_type n, const T& x);    //在位置pos前出入n个x[Sequence]
    iterator erase(iterator pos);    //删除在位置pos的元素 [Sequence]
    iterator erase(iterator first, iterator last);    //删除在[first, last]之间的元素 [Sequence]
    void clear();    //删除所有的元素 [Sequence]
    void resize(size_type n, t = T());    //插入或删除使元素个数为n插入的值为t[Sequence]
    bool operator==(const list&, const list&);    //重载==运算符 [Forward容器]
    bool operator<(const list&, const list&);    //小于逻辑运算符 [Forward容器]

list类的私有变量:
    void splice(iterator position, list&x);    //把list对象x和当前的list对象*this链接起来,链接的起始位置由position指定,即在 position前插入一个list对象x
    void splice(iterator position, list&x, iterator i);    //把list对象x和当前的list对象*this链接起来,链接的位置由position指定,即在position前插入一个list对象 x,另外,把由迭代器i指定的元素插入到当前链表中。
    void splice(iterator position, list&x, iterator f, iterator l);    //与上面的差异是,把由从迭代器f指定的起始元素到由迭代器l指定的结尾元素插入当前链表中。
    void remove(const T& val);    //从链表中删除所有值为val的元素
    templatevoid remove_if(Predicate p);    //删除链表中判断p为真的元素
    void unique();    //删除所有重复的元素以建立一个具有唯一元素值的链表
    templatevoid unique(BinaryPredicate p);    //根据指定的条件,删除所有重复的元素以建立具有唯一元素值的链表
    void merge(list& x);    //把当前的链表*this和x合并,合并后x为空,把x中的元素插入到了当前链表中,不允许两个链表相同
    template void merge(list& x, BinaryPredicate Comp);    //根据给顶的条件把当前链表*this和x合并,合并后x为空,把x中的元素插入到了当前链表中,不允许两个链表相同
    void reverse();    //反转链表中的元素顺序
    void sort();    //根据默认的条件对链表进行排序
    template void sort(BinaryPredicate comp);    //根据给定条件进行排序

阅读(933) | 评论(0) | 转发(0) |
0

上一篇:双端队列deque

下一篇:堆栈stack

给主人留下些什么吧!~~