list的使用方法

在 C++中,STL(标准模板库)中的 list 是一种双向链表容器,可以高效地进行插入、删除操作。
以下是 list 的一些常见使用方法:


一、头文件包含

#include <list>

二、创建和初始化

1. 创建一个空的 list :

std::list<int> myList;

2. 使用初始化列表初始化 list :

std::list<int> myList = {1, 2, 3, 4, 5};//创建一个list里面包含5个整数

三、基本操作

1. 插入元素:


- 在末尾插入元素:

myList.push_back(6);

- 在开头插入元素:

myList.push_front(0);

- 在指定位置插入元素:

std::list<int>::iterator it = myList.begin();
advance(it, 3);//将迭代器向前移动3个位置
myList.insert(it, 10);//在第三个元素后面插入10

2. 删除元素:

- 删除末尾元素:

myList.pop_back();

- 删除开头元素:

myList.pop_front();

- 删除指定元素:

int valueToRemove = 3;
myList.remove(valueToRemove);//删除list中所有的3

3. 获取元素数量:

int size = myList.size();

4. 遍历 list :

- 使用迭代器遍历:

for (std::list<int>::iterator it = myList.begin(); it!= myList.end(); ++it) {
    std::cout << *it << " ";
}
std::cout << std::endl;

- 使用范围 for 循环遍历:

for (int value : myList) {
    std::cout << value << " ";
}
std::cout << std::endl;

四、其他操作

1. 合并两个 list :

std::list<int> myList = { 1, 2, 3, 4, 5, 6};
std::list<int> anotherList = {7, 8, 9};
myList.merge(anotherList);

2. 反转 list :

myList.reverse();

3. 排序 list :

myList.sort();

五、举例

下面举个例子展示了 list 的一些常见操作,包括插入、删除、合并、反转和排序等。


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

int main() {
    std::list<int> myList = {3, 2, 4, 6, 8, 10, 3};

    // 在开头插入元素
    myList.push_front(0);

    // 在末尾插入元素
    myList.push_back(12);

    cout << "插入首尾元素后的输出:" << endl;
    for (int value : myList) {
        std::cout << value << " ";
    }
    std::cout << std::endl;


    // 在指定位置插入元素
    std::list<int>::iterator it = myList.begin();
    advance(it, 3);
    myList.insert(it, 3);
    cout << "指定位置插入元素后的输出:" << endl;
    for (int value : myList) {
        std::cout << value << " ";
    }
    std::cout << std::endl;

    // 删除元素
    int valueToRemove = 3;
    myList.remove(valueToRemove);

    cout << "删除指定元素后的输出:" << endl;
    // 遍历并输出
    for (int value : myList) {
        std::cout << value << " ";
    }
    std::cout << std::endl;

    // 合并另一个 list
    std::list<int> anotherList = { 7, 9, 11 };
    cout << "这是第二个list:" << endl;
    for (int value : anotherList) {
        std::cout << value << " ";
    }
    std::cout << std::endl;
    myList.merge(anotherList);



    cout << "合并两个list后的输出:" << endl;
    for (int value : myList) {
        std::cout << value << " ";
    }
    std::cout << std::endl;
    // 反转 list
    myList.reverse();
    cout << "反转list后的输出:" << endl;
    for (int value : myList) {
        std::cout << value << " ";
    }
    std::cout << std::endl;

    // 排序 list
    myList.sort();

    cout << "排序list后的输出:" << endl;
    for (int value : myList) {
        std::cout << value << " ";
    }
    std::cout << std::endl;

    return 0;
}

以下是运行结果:

插入首尾元素后的输出:
0 3 2 4 6 8 10 3 12
指定位置插入元素后的输出:
0 3 2 3 4 6 8 10 3 12
删除指定元素后的输出:
0 2 4 6 8 10 12
这是第二个list:
7 9 11
合并两个list后的输出:
0 2 4 6 7 8 9 10 11 12
反转list后的输出:
12 11 10 9 8 7 6 4 2 0
排序list后的输出:
0 2 4 6 7 8 9 10 11 12

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值