C++顺序容器之list初探

来源:互联网 发布:淘宝团队规模 编辑:程序博客网 时间:2024/05/26 08:42

C++顺序容器之list初探

双向链表,支持双向顺序访问。在list中任何位置进行插入和删除速度都很快。
list不支持随机访问,为了访问一个元素,必须遍历整个容器。

#include<iostream>#include<list>#include<algorithm>using namespace std;void printList(const list<int>& a);void printList(const list<int>& a){    // 注意形参中是const list,所以下面也需要用const_iterator    // 否则distance无法使用    list<int>::const_iterator iter;    for (iter = a.begin(); iter != a.end(); ++iter)    {        size_t index = distance(a.begin(), iter);        cout << "a[" << index << "] = " << *iter << endl;    }    cout << endl;}int main(){    list<int> a;    // push_front、push_back插入数据    a.push_front(4);    a.push_front(3);    a.push_front(2);    a.push_front(1);    a.push_back(50);    printList(a);    // insert插入数据    list<int>::iterator iter;    iter = a.begin();    a.insert(iter, 0);    a.insert(++iter, 10);    a.insert(++iter, 4, 20); // 插入4个20    printList(a);    // sort排序    cout << "sort排序" << endl;    a.sort();    printList(a);    // reverse逆序    cout << "reverse逆序" << endl;    a.reverse();    printList(a);    // erase删除指定元素    cout << "erase删除指定元素" << endl;    a.erase(iter);    printList(a);    // erase删除指定区间的元素    cout << "erase删除指定区间元素" << endl;    a.erase(++a.begin(), --a.end());    printList(a);    system("pause");    return 0;}