链表

前言

简单的数据结构,存储单元存储线性表

STL使用

#include <bits/stdc++.h>
using namespace std;
int main()
{
    list<int> myList;
    myList.push_back(6);              // 在list的末尾添加元素6
    myList.push_back(6);              // 在list的末尾添加元素6
    myList.push_back(6);              // 在list的末尾添加元素6
    myList.push_back(6);              // 在list的末尾添加元素6
    myList.push_back(6);              // 在list的末尾添加元素6
    myList.push_front(0);             // 在list的开头添加元素0
    myList.insert(myList.begin(), 7); // 在list的开头插入元素7
    list<int>::iterator it = myList.begin();
    it++;
    myList.insert(it, 7);

    myList.pop_back();            // 删除list的最后一个元素
    myList.pop_front();           // 删除list的第一个元素
    myList.erase(myList.begin()); // 删除list的第一个元素(使用迭代器)
    myList.clear();               // 清空

    // 使用迭代器遍历
    for (std::list<int>::iterator It = myList.begin(); It != myList.end(); ++It)
    {
        std::cout << *It << " ";
    }

    auto it2 = std::find(myList.begin(), myList.end(), 7); // 查找值为7的元素
    if (it2 != myList.end())
    {
        std::cout << "Found element: " << *it2 << std::endl;
    }
    else
    {
        std::cout << "Element not found" << std::endl;
    }

    int aa1 = myList.size();  // 数量
    int aa2 = myList.front(); // 首项
    int aa3 = myList.back();  // 尾项

    myList.unique(); // 去重
    /*std::list<int> mylist1;
    mylist1.push_back(4);
    for (int i = 1; i <= 5; i++) mylist1.push_back(5);
    mylist1.push_back(4);
    for (int i = 1; i <= 5; i++) mylist1.push_back(5);
    mylist1.unique();
    for (int e : mylist1)
        std::cout << e << " ";*/
    // 输出4 5 4 5

    myList.sort(); // 排序
    return 0;
}

题目

洛谷P1996

洛谷P1160

posted @ 2024-11-21 22:15  流氓兔LMT  阅读(1)  评论(0编辑  收藏  举报