【STL】4.<list>

news/2025/2/25 18:07:27

list

  • 前言
  • list容器
    • 一.list初始化
    • 二.常用函数
    • 三.排序
  • 总结

前言

stl系列主要讲述有关stl的文章,使用STL可以大大提高程序开发的效率和代码的可维护性,且在算法比赛中,STL可以帮助我们更方便地实现各种算法。提高我们的效率。

list_4">list容器

要使用list,要包含list头文件

list(链表)完成的功能实际上和数据结构中的双向链表是极其相似的,list中的数据元素是通过链表指针串连起来逻辑意义上的线性表,也就是说list也具有链表的主要优点,即:在链表的任意位置进行元素插入,删除操作都是快速的。

list_8">一.list初始化

list<int> l1;//创建一个空链表
list<int> l2(10);//创建一个链表其有10个空元素
list<int> l3(5, 10);//创建一个链表其中有五个元素为10
list<int> l4(l3.begin(), l3.end());//创建一个链表其内容为l3的内容
list<int> l5(l4);//创建一个链表内容为l4的内容
//遍历元素
list<int> l = { 1,2,3,4,5 };
for (list<int>::iterator i = l.begin(), i != l.end(); i++) {
	cout << *i << " ";
}
cout << endl;
//iterator(迭代器)是一种类似于指针的对象,用于遍历容器中的元素
//list<int>::iterator i : 声明了一个迭代器用于遍历list<int>类型的链表

二.常用函数

l1.push_front(n);//表示在链表最前端插入一个数据n
l2.pop_front();//表示在链表最前端删除一个元素
l3.push_back(n);//表示在链表最后端插入一个元素n
l4.pop_back();//表示在链表最后端删除一个元素
l5.insert(l5.begin(),5);//表示在l5最前端插入一个元素5
l6.insert(l6.begin(),2,5);//表示在l6最前端插入两个元素5
l7.erase(l7.begin());//表示删除l7最前端的数据
l8.erase(l8.begin(), l8.end());//表示删除l8的所有元素
l9.clear();//示删除l9的所有元素
l10.merge(l11);//合并l11到l10中
l12.size();//返回list中的元素个数
l13.swap(l14);//交换l13和l14中的元素

三.排序

#include <iostream>
#include <list>
using namespace std;
//使用自定义比较函数进行降序排列
bool cmp(const int& n1, const int& n2) {//引用传递
	return n1 > n2;
}

int main() {
	list<int> num1 = { 4,5,1,5,1,8,6,8,2,7,9 };
	list<int> num2(num1);

	num1.sort();//升序排列
	for (auto i = num1.begin(); i != num1.end(); i++) {
		cout << *i << " ";
	}
	cout << endl;

	num2.sort(cmp);//降序排列
	for (auto i = num2.begin(); i != num2.end(); i++) {
		cout << *i << " ";
	}
	cout << endl;

	num2.reverse();//降序排列
	for (auto i = num2.begin(); i != num2.end(); i++) {
		cout << *i << " ";
	}
	cout << endl;

	return 0;
}

总结

希望大家点赞收藏我会尽快更新STL!!!


http://www.niftyadmin.cn/n/5865808.html

相关文章

DeepSeek行业应用实践报告-智灵动力【112页PPT全】

DeepSeek&#xff08;深度搜索&#xff09;近期引发广泛关注并成为众多企业/开发者争相接入的现象&#xff0c;主要源于其在技术突破、市场需求适配性及生态建设等方面的综合优势。以下是关键原因分析&#xff1a; 一、技术核心优势 开源与低成本 DeepSeek基于开源架构&#xf…

ClickHouse系列之ClickHouse使用

ClickHouse系列之ClickHouse使用 1 ClickHouse 数据类型1.1 有符号整数1.2 无符号整数1.3 浮点数1.4 字符串类型1.4.1 String 1.5 时间类型Date1.6 DateTime 2 Clickhouse引擎类型2.1 Log系列引擎2.1.1 TinyLog引擎2.1.1.1 建表语法2.1.1.2 示例 2.2 MergeTree系列表引擎2.2.1 …

DeepSeek开源周高能开场:新一代高效推理引擎FlashMLA正式发布

全球AI社区沸腾&#xff01;DeepSeek开源周高能开场&#xff1a;新一代高效推理引擎FlashMLA正式发布 北京时间今晨&#xff0c;国内领先的人工智能研究机构深度求索&#xff08;DeepSeek&#xff09;在GitHub平台重磅推出全新开源项目FlashMLA&#xff0c;以破竹之势在开源界…

迅为RK3568开发板篇Openharmony配置HDF控制UART-实操-HDF驱动配置UART-配置 rk3568_uart_config.hcs

在上面的配置中需要注意以下几点&#xff1a; 1 device_uart_0x0004 中的后缀“0x0004”是串口编号。 2 num 与 driver_name 值“ttyS”组成驱动设备名&#xff0c;例如 ttyS4。UartOpen 函数参数 port,则表示上述 uart 设备排列序号&#xff0c;比如 num4 的 UartOpen 函数 po…

Jmeter HTTP代理服务器录制压力脚本

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 从loadrunner到jmeter&#xff0c;录制压力测试脚本好像都只支持IE&#xff0c;近来才知道jmeter还有自带的录制脚本元件&#xff0c;且支持IE、Chrome及Firefox等…

TMDS视频编解码算法

因为使用的是DDR进行传输&#xff0c;即双倍频率采样&#xff0c;故时钟只用是并行数据数据的5倍&#xff0c;而不是10倍。 TMDS算法流程&#xff1a; 视频编码TMDS算法流程实现&#xff1a; timescale 1 ps / 1ps //DVI编码通常用于视频传输&#xff0c;将并行数据转换为适合…

基于 SpringBoot 的 “电影交流平台小程序” 系统的设计与实现

大家好&#xff0c;今天要和大家聊的是一款基于 SpringBoot 的 “电影交流平台小程序” 系统的设计与实现。项目源码以及部署相关事宜请联系我&#xff0c;文末附上联系方式。 项目简介 基于 SpringBoot 的 “电影交流平台小程序” 系统设计与实现的主要使用者分为 管理员 和…

nginx代理后502

直接访问 ​https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions正常 使用nginx代理后访问出现502 server {listen 9999;server_name 172.21.3.78;location ^~ /compatible-mode {proxy_pass https://dashscope.aliyuncs.com;}location / {proxy_pass…