STL之list

list即雙向鏈表。ios

#include<iostream>
#include<list>
using namespace std;

int main()
{
    //構造
    list<int> li;

    //插入元素
    //頭插
    li.emplace_front(2);
    //尾插
    li.emplace_back(8);
    //指定位置插入
    li.insert(++li.begin(), 6);

    //遍歷
    for (list<int>::iterator it = li.begin(); it != li.end(); it++)
        cout << *it;
    cout << endl;
    //輸出:268

    //排序,不能使用頭文件algorithm中的sort算法,使用list模板自定義的sort方法
    li.sort(greater<int>()); //從大到小排序
    for (list<int>::iterator it = li.begin(); it != li.end(); it++)
        cout << *it;
    cout << endl;
    //輸出:862

    li.emplace_back(2);
    li.emplace_back(6);
    li.emplace_back(8);

    //刪除元素
    //刪除指定位置元素
    li.erase(++li.begin()); //刪除第二個元素'6'
    for (list<int>::iterator it = li.begin(); it != li.end(); it++)
        cout << *it;
    cout << endl;
    //輸出:82268

    //刪除指定元素
    li.remove(8); //刪除元素'8'
    for (list<int>::iterator it = li.begin(); it != li.end(); it++)
        cout << *it;
    cout << endl;
    //輸出:226

    //刪除連續的重複元素,只保留其中一個
    li.unique(); //刪除連續的重複元素'2',只保留其中一個
    for (list<int>::iterator it = li.begin(); it != li.end(); it++)
        cout << *it;
    cout << endl;
    //輸出:26

    return 0;
}
相關文章
相關標籤/搜索