当前位置: 首页 > article >正文

14-6-2C++STL的list

(一)list对象的带参数构造


1.list(elem);//构造函数将n个elem拷贝给本身

#include <iostream>
#include <list>
using namespace std;
int main()
{
    list<int> lst(3,7);
    list<int>::iterator it;
    
    for(it=lst.begin();it!=lst.end() ;it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    return 0;
}


2. list(beg,end)://构造函数将[beg,end)区间中的元素拷贝给本身

#include <iostream>
#include <list>
using namespace std;
int main()
{
    list<int> lst;
    lst.push_back(10);
    lst.push_back(20);
    lst.push_back(30);
    lst.push_back(40);
    list<int>::iterator beg=lst.begin();
    beg++;
    list<int>::iterator end=lst.begin();
    end++;
    end++;
    end++;
    list<int> lst1(beg,end);
    list<int>::iterator it;
    for(it=lst1.begin();it!=lst1.end() ;it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    return 0;
}

3.list(const list&lst)://拷贝构造函数

#include <iostream>
#include <list>
using namespace std;
int main()
{
    list<int> lst;
    lst.push_back(10);
    lst.push_back(20);
    lst.push_back(30);
    lst.push_back(40);
    list<int>lst1(lst);
    list<int>::iterator it;
    for(it=lst1.begin();it!=lst1.end() ;it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    return 0;
}


(二)list容器的赋值

1.list.assign(beg, end);//将[beg,end)区间中的数据拷贝赋值给本身,注意该区间

是左闭右开的区间

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

int main()
{
    list<int> lst, lst2;
    lst2.push_back(10);
    lst2.push_back(20);
    lst2.push_back(30);
    lst2.push_back(40);
    list<int>::iterator it = lst2.end();
    it--;
    lst.assign(lst2.begin(), it);
    for (list<int>::iterator it = lst.begin(); it != lst.end(); it++)
    {
        cout << *it << " ";
    }
    cout << endl;

    return 0;
}

2.list.assign(n,elem);//将n个elem拷贝赋值给本身

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

int main()
{
    list<int> lst;
    lst.assign(5,7); 
    for (list<int>::iterator it = lst.begin(); it != lst.end(); it++)
    {
        cout << *it << " ";
    }
    cout << endl;

    return 0;
}

3.list.swap(lst);//将Ist与本身的元素互换

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

int main()
{
    list<int> lst,lst1;
    lst1.push_back(10);
    lst1.push_back(20);
    lst.assign(5,7); 
    lst.swap(lst1);
    for (list<int>::iterator it = lst.begin(); it != lst.end(); it++)
    {
        cout <<"lis="<<*it << " ";
    }
    cout << endl;
    for (list<int>::iterator it = lst1.begin(); it != lst1.end(); it++)
    {
        cout <<"lis1="<<*it << " ";
    }
    cout << endl;

    return 0;
}


(三)list容器的大小

1.list.size();//返回容器中元素的个数

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

int main()
{
    list<int> lst1;
    lst1.push_back(10);
    lst1.push_back(20);
    lst1.push_back(30);
    lst1.push_back(40);
    cout<<"lst1的长度"<<lst1.size()<<endl;

    return 0;
}

2.list.empty();//判断容器是否为空

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

int main()
{
    list<int> lst1;
    lst1.push_back(10);
    lst1.push_back(20);
    lst1.push_back(30);
    lst1.push_back(40);
    cout<<"empty?="<<lst1.empty()<<endl;

    return 0;
}

3.list.resize(num);//重新指定容器的长度为num,若容器变长,则以默认值填充新位置;如果容器变短,则末尾超出容器长度的元素被删除;

list.resize(num, elem);//重新指定容器的长度为num,若容器变长,则以elem值填充新位置;如果容器变短,则末尾超出容器长度的元素被册除

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

int main()
{
    list<int> lst1;
    lst1.push_back(10);
    lst1.push_back(20);
    lst1.push_back(30);
    lst1.push_back(40);
    lst1.resize(lst1.size() +3);
    list <int>::iterator it;
    for(it=lst1.begin() ;it!=lst1.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    return 0;
}

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

int main()
{
    list<int> lst1;
    lst1.push_back(10);
    lst1.push_back(20);
    lst1.push_back(30);
    lst1.push_back(40);
    lst1.resize(lst1.size() +3,70);
    list <int>::iterator it;
    for(it=lst1.begin() ;it!=lst1.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    return 0;
}

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

int main()
{
    list<int> lst1;
    lst1.push_back(10);
    lst1.push_back(20);
    lst1.push_back(30);
    lst1.push_back(40);
    lst1.resize(3);
    list <int>::iterator it;
    for(it=lst1.begin() ;it!=lst1.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    return 0;
}

相关文章:

14-6-2C++STL的list

(一&#xff09;list对象的带参数构造 1.list&#xff08;elem);//构造函数将n个elem拷贝给本身 #include <iostream> #include <list> using namespace std; int main() { list<int> lst(3,7); list<int>::iterator it; for(itlst.begi…...

Linux 基础1

gcc的编译过程 预处理——编译——汇编——链接 Linux文件类型 普通文件&#xff0c;目录文件&#xff0c;管道文件&#xff0c;链接文件&#xff0c;块设备文件&#xff0c;字符设备文件&#xff0c;套接字文件 Linux系统下的软链接和硬链接有什么异同 linux中软链接和硬…...

Ubuntu Server 安装 XFCE4桌面

Ubuntu Server没有桌面环境&#xff0c;一些软件有桌面环境使用起来才更加方便&#xff0c;所以我尝试安装桌面环境。常用的桌面环境有&#xff1a;GNOME、KDE Plasma、XFCE4等。这里我选择安装XFCE4桌面环境&#xff0c;主要因为它是一个极轻量级的桌面环境&#xff0c;适合内…...

xarray转换nc文件经度范围:0-360更改为-180-180

原文见https://blog.csdn.net/weixin_44237337/article/details/119707332&#xff0c;因为觉得很实用就转载一下。 lon_name longitude #你的nc文件中经度的命名 ds[longitude_adjusted] xr.where(ds[lon_name] > 180,ds[lon_name] - 360,ds[lon_name]) ds (ds.swap_d…...

MySQL 基础学习(1):数据类型与操作数据库和数据表

MySQL 基础学习&#xff1a;数据类型与操作数据库和数据表 在这篇博客中&#xff0c;我们将深入学习 MySQL 的基础操作&#xff0c;重点关注数据库和数据表的操作&#xff0c;以及 MySQL 中常见的数据类型。希望本文能帮助你更好地理解和掌握 MySQL 的基本用法。 一、操作数据…...

一个简单的自适应html5导航模板

一个简单的 HTML 导航模板示例&#xff0c;它包含基本的导航栏结构&#xff0c;同时使用了 CSS 进行样式美化&#xff0c;让导航栏看起来更美观。另外&#xff0c;还添加了一些 JavaScript 代码&#xff0c;用于在移动端实现导航菜单的展开和收起功能。 PHP <!DOCTYPE htm…...

深入解析“Wholesome”的含义及用法

深入解析“Wholesome”的含义及用法 一、引言 在阅读英文材料时&#xff0c;我们经常会遇到一些词汇&#xff0c;它们的含义既有直接的字面意思&#xff0c;又带有丰富的情感色彩。“Wholesome”就是这样一个词。它表面上看似简单&#xff0c;但在不同语境中却有多重内涵。在…...

供水企业满意度调查报告

民安智库作为一家独立的第三方评估机构&#xff0c;致力于为供水企业提供全面的客户满意度调查服务。本报告将详细介绍民安智库的调查方法、结果和建议&#xff0c;以帮助供水企业更好地理解其服务质量和客户需求。 一、调查方法 民安智库首先对客户进行了分类&#xff0c;包括…...

实现B-树

一、概述 1.历史 B树&#xff08;B-Tree&#xff09;结构是一种高效存储和查询数据的方法&#xff0c;它的历史可以追溯到1970年代早期。B树的发明人Rudolf Bayer和Edward M. McCreight分别发表了一篇论文介绍了B树。这篇论文是1972年发表于《ACM Transactions on Database S…...

无人机微波图像传输数据链技术详解

无人机微波图像传输数据链技术是无人机通信系统中的关键组成部分&#xff0c;它确保了无人机与地面站之间高效、可靠的图像数据传输。以下是对该技术的详细解析&#xff1a; 一、技术原理 无人机微波图像传输数据链主要基于微波通信技术实现。在数据链路中&#xff0c;图像数…...

【Leetcode 热题 100】300. 最长递增子序列

问题背景 给你一个整数数组 n u m s nums nums&#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c; [ 3 , 6 , 2 , 7 ] [3,6,2,7] [3,6,2…...

macos的图标过大,这是因为有自己的设计规范

苹果官方链接&#xff1a;App 图标 | Apple Developer Documentation 这个在官方文档里有说明&#xff0c;并且提供了sketch 和 ps 的模板。 figma还提供了模板&#xff1a; Figma...

信号处理以及队列

下面是一个使用C和POSIX信号处理以及队列的简单示例。这个示例展示了如何使用信号处理程序将信号放入队列中&#xff0c;并在主循环中处理这些信号。 #include <iostream> #include <csignal> #include <queue> #include <mutex> #include <thread…...

微信阅读网站小程序的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

美国公司有意收购TikTok(抖音)

众所周知&#xff0c;2016年TikTok由字节跳动集团推出&#xff0c;最初以“抖音”为名在中国市场推广&#xff0c;随后于2017年下半年出海&#xff0c;面向国际市场更名为“TikTok”。 新华社1月19日快讯&#xff1a;“TikTok公司当地时间18日晚通知美国用户&#xff0c;由于美…...

《Java程序设计》课程考核试卷

一、单项选择题&#xff08;本大题共10个小题&#xff0c;每小题2分&#xff0c;共20分&#xff09; 1.下列用来编译Java源文件为字节码文件的工具是&#xff08; &#xff09;。 A.java B.javadoc C.jar D.javac 2…...

ThinkPHP 8 操作JSON数据

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…...

《AI赋能光追:开启图形渲染新时代》

光线追踪技术是图形渲染领域的重大突破&#xff0c;能够通过模拟光的传播路径&#xff0c;精准渲染反射、折射、阴影和间接光照等效果&#xff0c;实现高度逼真的场景呈现。而人工智能的加入&#xff0c;更是为光线追踪技术带来了前所未有的变革&#xff0c;主要体现在以下几个…...

LeetCode | 最小路径和的两种解决办法

第一种&#xff1a;动态规划 思路 在过去&#xff0c;有这样一个词&#xff0c;那就是遇难则反&#xff0c;从起点推导出最小路径和是困难的&#xff0c;那我们就从终点去推导。 解题过程 我们都知道一个方块&#xff0c;只能向右或向下。在初始化dp之后&#xff0c;我们会…...

Windows 环境下 Docker Desktop + Kubernetes 部署项目指南

Windows 环境下 Docker Desktop Kubernetes 部署项目指南 一、环境准备二、安装与配置 Kubernetes安装 windows 版的 docker启动 kubernetes安装 windows 版的 kubectl 工具下载 k8s-for-docker-desktop启动 Kubernetes Dashboard 二、在 Kubernetes 上部署项目创建一个 demo …...

WebSocket 详解:全双工通信的实现与应用

目录 一、什么是 WebSocket&#xff1f;&#xff08;简介&#xff09; 二、为什么需要 WebSocket&#xff1f; 三、HTTP 与 WebSocket 的区别 WebSocket 的劣势 WebSocket 的常见应用场景 WebSocket 握手过程 WebSocket 事件处理和生命周期 一、什么是 WebSocket&#xf…...

神经网络|(二)sigmoid神经元函数

【1】引言 在前序学习进程中&#xff0c;我们已经了解了基本的二元分类器和神经元的构成&#xff0c;文章学习链接为&#xff1a; 神经网络|(一)加权平均法&#xff0c;感知机和神经元-CSDN博客 在此基础上&#xff0c;我们认识到神经元本身在做二元分类&#xff0c;是一种非…...

云原生:构建现代化应用的基石

一、什么是云原生&#xff1f; 云原生是一种构建和运行应用程序的方法&#xff0c;旨在充分利用云计算的分布式系统优势&#xff0c;例如弹性伸缩、微服务架构、容器化技术等。云原生应用程序从设计之初就考虑到了云环境的特点&#xff0c;能够更好地适应云平台的动态变化&…...

【浏览器 - Chrome调试模式,如何输出浏览器中的更多信息】

在开发过程中&#xff0c;如果不主动console.log&#xff0c;浏览器中的信息有些不会主动输出到 控制台console里面。这个如果是一些浏览器内部的接口调试&#xff0c;则会很麻烦。比如RTCPeerConnection过程 &#xff0c;RTCPeerConnection属于浏览器内部的方法&#xff0c;其…...

不同操作系统(Windows、Linux)上安装和配置Tomcat的详细教程

以下是在不同操作系统(Windows、Linux)上安装和配置Tomcat的详细教程: Windows系统下Tomcat的安装与配置 下载Tomcat 访问Apache Tomcat官方网站(https://tomcat.apache.org)。在“Download”页面,根据需求选择合适的Tomcat版本。例如,选择“Core”下的zip压缩包下载。…...

MapReduce,Yarn,Spark理解与执行流程

MapReduce的API理解 Mapper 如果是单词计数&#xff1a;hello&#xff1a;1&#xff0c; hello&#xff1a;1&#xff0c; world&#xff1a;1 public void map(Object key, // 首字符偏移量Text value, // 文件的一行内容Context context) // Mapper端的上下文&#xff0c;…...

unity导入图片素材注意点和AI寻路模块导入

当我们导入了图片资源&#xff0c;我们需要设置为Sprite类型 UI资源的位置通常是Rect Transform 要进行转化&#xff1a; (imgHP.transform as RectTransform).sizeDelta new Vector2((float)hp / maxHP * hpW,74); RectTransform 是Unity中用于UI元素的特殊变换组件&#…...

单片机-STM32 IIC通信(OLED屏幕)(十一)

一、屏幕的分类 1、LED屏幕&#xff1a; 由无数个发光的LED灯珠按照一定的顺序排列而成&#xff0c;当需要显示内容的时候&#xff0c;点亮相关的LED灯即可&#xff0c;市场占有率很高&#xff0c;主要是用于户外&#xff0c;广告屏幕&#xff0c;成本低。 LED屏是一种用发光…...

Windows Docker Desktop安装及使用 Docker 运行 MySQL

Docker Desktop是Docker的官方桌面版&#xff0c;专为Mac和Windows用户设计&#xff0c;提供了一个简单易用的界面来管理和运行Docker容器。它集成了Docker引擎&#xff0c;为开发人员提供了一个快速、可靠、可扩展的方式来构建、运行和管理应用。DockerDesktop的优势在于&…...

开源RAG框架Kotaemon及其混合检索系统的优势与局限

开源RAG框架Kotaemon及其混合检索系统的优势与局限 大模型&#xff08;LLMs&#xff09;的快速发展令人瞩目&#xff0c;但如何让这些模型更有效地利用外部知识&#xff0c;一直是业界关注的焦点。检索增强生成&#xff08;Retrieval-Augmented Generation&#xff0c;RAG&…...