C++ list的实例详解

C++ list的实例详解

什么是C++ list?

在C++ STL中,list是一种双向链表容器,可以用于存储各种数据类型的元素。list在插入和删除操作上效率比较高,但是随机访问效率较低。

如何使用C++ list

  1. 引入list头文件

    ```c++

    include

    ```

  2. 声明list

    c++
    list<int> mylist;

  3. 在list中增加元素

    c++
    mylist.push_front(1); // 在list头部插入元素1(时间复杂度为 O(1))
    mylist.push_back(2); // 在list尾部插入元素2(时间复杂度为 O(1))
    mylist.insert(mylist.begin(), 3); // 在list头部之后插入元素3(时间复杂度为 O(1))

  4. 在list中删除元素

    c++
    mylist.pop_front(); // 删除list头部的元素(时间复杂度为 O(1))
    mylist.pop_back(); // 删除list尾部的元素(时间复杂度为 O(1))
    mylist.erase(mylist.begin()); // 删除list头部之后的元素(时间复杂度为 O(1))

  5. 遍历list

    c++
    list<int>::iterator it;
    for (it=mylist.begin(); it!=mylist.end(); ++it) {
    cout << *it << " ";
    }
    // 输出结果为1 2 3

示例说明

示例一

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

int main() {
    list<int> mylist;
    mylist.push_back(10);
    mylist.push_back(20);
    mylist.push_back(30);

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

    it = mylist.begin();
    ++it;
    mylist.insert(it, 15);

    for(it=mylist.begin(); it!=mylist.end(); ++it) {
        cout << *it << " ";
    }
    cout << endl;

    it = mylist.begin();
    ++it;
    mylist.erase(it);

    for(it=mylist.begin(); it!=mylist.end(); ++it) {
        cout << *it << " ";
    }
    cout << endl;

    return 0;
}

输出结果为:

10 20 30
10 15 20 30
10 20 30

该示例演示了C++ list的基本应用,包括list的声明、增加元素、遍历list和删除元素等操作。

示例二

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

int main() {
    list<int> mylist;
    for(int i=1; i<=10; ++i) {
        mylist.push_back(i*10);
    }

    // 删除list中大于50的元素(使用自定义的函数对象)
    mylist.remove_if([](int x){
        return x>50;
    });

    // 输出删除后的list
    list<int>::iterator it;
    for(it=mylist.begin(); it!=mylist.end(); ++it) {
        cout << *it << " ";
    }
    cout << endl;

    return 0;
}

输出结果为:

10 20 30 40 50

该示例演示了如何使用C++ list自带的算法函数remove_if,通过自定义函数对象,删除list中符合条件的元素。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++ list的实例详解 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • js生成word中图片处理

    下面是 JS 生成 Word 中图片处理的完整攻略,包括图片处理的基本原理、常见问题和两个示例说明。 图片处理的基本原理 在 JS 中生成 Word 文档时,如果需要插入图片,需要对图片进行处理。图片处理的基本原理包括以下几个方面: 图片转换 JS 中的图片通常是以 base64 编码的字符串形式存在的,需要将其转换为 Word 中的图片格式,如 JPEG、…

    other 2023年5月5日
    00
  • windows、linux下打包Python3程序详细方法

    这里是“windows、linux下打包Python3程序详细方法”的完整攻略。 1. 概述 在Python3中,有两个常用的工具可以将Python脚本打包成可执行程序:py2exe和PyInstaller。下面将分别讲解在windows和linux环境下使用这两个工具来打包Python程序的详细方法。 2. 在windows下使用py2exe打包Pytho…

    other 2023年6月26日
    00
  • Counter-Strike: cstrike.exe 应用程序错解决方法误

    解决 “Counter-Strike: cstrike.exe 应用程序错解决方法误” 问题,可以遵循以下步骤: 步骤一:重新安装游戏 首先,建议你尝试重新安装 Counter-Strike 游戏,因为该错误有可能是由游戏程序损坏或文件丢失造成的。 可以先卸载 Counter-Strike,然后再重新下载安装,确保下载的游戏文件没有损坏并且安装过程没有中途出…

    other 2023年6月25日
    00
  • putty修改编码

    Putty修改编码 Putty是一款常用的SSH(Secure Shell)客户端,常用于连接远程服务器进行操作。由于不同操作系统和软件的默认编码不同,连接远程服务器时可能会出现乱码问题。而Putty提供了修改编码的功能,方便我们在连接远程服务器时解决乱码问题。 本篇文章将介绍如何在Putty中修改编码。 Step 1: 打开Putty 打开Putty程序,…

    其他 2023年3月28日
    00
  • vue :src 文件路径错误问题的解决方法

    当在Vue中引用图片等资源时,有时会出现src文件路径错误的问题,这会导致资源无法正确加载并显示。下面我们来讲解一下如何解决这个问题。 问题原因 Vue中的src属性会默认将路径解析为相对路径,这意味着需要非常小心的处理,在某些情况下,路径可能会相对于当前的路由或组件进行解析,而不是相对于您的应用程序的根路径解析。这通常会导致src路径错误的问题。 解决方法…

    other 2023年6月27日
    00
  • 安卓5.1官网下载地址 android5.1系统刷机包下载

    安卓5.1官网下载地址 安卓5.1是一款较旧的安卓操作系统版本,但仍然有一些用户希望使用它。在本攻略中,我将为您提供安卓5.1系统的官方下载地址以及刷机包的下载方法。 1. 官网下载地址 您可以从以下官方网站下载安卓5.1系统: 安卓官方网站:官方网站通常提供最新的安卓系统版本,但您可能需要在网站上进行一些导航才能找到旧版本的下载链接。 2. 刷机包下载 一…

    other 2023年8月4日
    00
  • Android实现3D标签云简单效果

    Android实现3D标签云简单效果攻略 简介 在本攻略中,我们将学习如何在Android应用中实现一个简单的3D标签云效果。标签云是一种常见的数据可视化方式,通过不同大小和颜色的标签来展示数据的重要性和关联性。 步骤 步骤一:导入依赖库 首先,我们需要在项目的build.gradle文件中添加以下依赖库: dependencies { implementa…

    other 2023年8月25日
    00
  • 鼠标快捷手势设置方法实现鼠标手势来执行任务

    下面是“鼠标快捷手势设置方法实现鼠标手势来执行任务”的完整攻略: 一、安装鼠标手势软件 首先,我们需要安装一个鼠标手势软件。推荐使用 StrokesPlus 这款免费的开源软件。 访问 StrokesPlus 官网,在首页的”Download”页面下载适用于您的 Windows 版本的安装程序 执行下载的安装程序,按照提示安装 StrokesPlus 软件。…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部