vector与list的区别与应用?

vector与list的区别与应用?以及怎么找到某vector或者list的倒数第二个元素?

vector和list的区别可以类比数组和链表的区别:

        vector和数组类似,vector是一个在内存中连续存放且可以自动增长的容器,因此支持随机访问,随机访问的时间复杂度是O(1),跟数组类型。因为是连续存放的,因此插入和删除元素的时间复杂度较高(除了在尾部进行插入和删除),原因是插入元素需要将该位置的元素后面的所有元素都移动出一格来存放该插入元素,删除就要将该位置后面的元素往前挪,因此其为O(n)。

        list是由双向链表实现的,双向链表就是结点有三个成员,分别是当前结点的值,指向上一个结点的指针以及指向下一个结点的指针。我们知道链表不支持随机访问,访问一个结点的数据的时间复杂度为O(n),要找的结点需要从当前位置向前或者向后遍历出来,而不能随机访问。但是list很适合插入和删除一个结点,只需要改变指针的指向就可以了,时间复杂度为O(1)。

访问vector倒数第二个元素:

///<vector
std::vector<int > v{1, 2, 3, 4, 5};
int len = v.size();
std::cout << v[len-2] << std::endl;///<list
//list是双向链表不能直接随机访问
#include <iostream>
#include <list>int main() {std::list<int> myList {1, 2, 3, 4, 5};if(myList.size() >= 2) {std::list<int>::reverse_iterator rit = myList.rbegin();++rit;  // 移动迭代器到倒数第二个元素std::cout << "倒数第二个元素是:" << *rit << std::endl;} else {std::cout << "列表元素不足两个。" << std::endl;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/745110.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

15、Linux-Shell04:分支和循环

一、分支逻辑 1、if if condition1 thencommand1 elif condition2 then command2 elsecommandN fiecho please input first number read a echo please input second number read bif [ $a -eq $b ] thenecho "equal" elif [ $a -gt $b ] thenecho "the firs…

【MySQL】深入解析索引实现原理

文章目录 1、索引介绍2、索引分类2.1、数据结构HashB Tree 2.2、存储方式聚簇索引非聚簇索引 2.3、功能特性主键索引唯一索引普通索引 2.4、字段数量单列索引多列索引 3、最佳实践3.1、索引覆盖3.2、回表操作3.3、最左匹配原则3.4、索引下推 1、索引介绍 对于MySQL数据库来说…

笔试题:小红的循环小数 数论 欧拉 快速幂 小费马定理

小红的循环小数 众所周知&#xff0c;所有的无限循环小数都可以写成分数的形式 小红想让你判断循环节长度为k的无限循环小数的分母是否可能是p。你能帮帮她吗&#xff1f; 共有q次询问。 输入描述 第一行输入一个正整数 q q q&#xff0c;代表询问次数。 接下来的 q q q行&…

Tensorflow笔记(二):常用函数2、激活函数、优化器等、神经网络模型实现(商品销量预测)

import tensorflow as tf import numpy as np from tqdm import tqdm# ----------------------------- tensor常用函数2 ----------------------------------- a tf.constant([1, 2, 3, 1, 2]) b tf.constant([0, 1, 3, 4, 5]) c tf.where(tf.greater(a, b), a, b) # 若a&g…

计算机毕业设计-springboot+vue前后端分离电竞社交平台管理系统部分成果分享

4.5系统结构设计 本系统使用的角色主要有系统管理员、顾客、接单员&#xff0c;本系统为后台管理系统&#xff0c;游客用户可以经过账号注册&#xff0c;管理员审核通过后&#xff0c;用账号密码登录系统&#xff0c;查看后台首页&#xff0c;模块管理&#xff08;顾客信息&am…

vite+vue3项目中svg图标组件封装

一、安装插件 npm i vite-plugin-svg-icons -D 二、插件配置 // vite.config.jsimport { createSvgIconsPlugin } from "vite-plugin-svg-icons"; import path from "path";export default defineConfig({plugins: [// svg图标配置项createSvgIconsPlug…

mysql重构

力扣题目链接 列转行 SELECT product_id, store1 store, store1 price FROM products WHERE store1 IS NOT NULL UNION SELECT product_id, store2 store, store2 price FROM products WHERE store2 IS NOT NULL UNION SELECT product_id, store3 store, store3 price FROM p…

探讨:MySQL和PostgreSQL谁更火

一、有人说PostgreSQL比MySQL火&#x1f525; PostgreSQL相比于MySQL越来越受欢迎的原因可以从以下几个方面来阐述&#xff1a; 许可协议灵活性&#xff1a; PostgreSQL采用的是较为宽松的BSD许可证&#xff0c;允许企业在开源的基础上自由使用、修改和分发&#xff0c;而无需…

全栈的自我修养 ———— js中的复制api

通常用于可以禁止用户复制或者在复制的内容后面添加版权信息等 一、代码二、展示1、访问粘贴板的内容2、替换复制内容3、在复制内容的后面添加版权信息4、监听粘贴事件 一、代码 <body><div class"demo">不可以被复制</div><div class"de…

ARM/Linux嵌入式面经(六):华为【共四面】

【一面】资格面 主要是问了有以下几点: 简历好奇我的专业,然后问我学过哪些学科。 项目当时抓我的项目,一个无线传感器网络的项目。没有问技术,主要问了: + 做了多久 + 在项目中处于什么角色,负责哪部分的工作。 + 遇到了什么困难?规划问了职业规划 家庭家庭成员,哪里…

如何从任何文档生成指令数据集以进行LLM微调

使用轻量级库经济地生成高质量的合成数据集 大型语言模型 &#xff08;LLMs&#xff09; 是功能强大的通用工具&#xff0c;但它们通常缺乏特定于领域的知识&#xff0c;这些知识通常存储在企业存储库中。 使用您自己的数据微调自定义LLM可以弥合这一差距&#xff0c;而数据准…

【Shiro反序列化漏洞】Shiro-550反序列化漏洞复现

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

了解下索引的几棵树?

二叉树 二叉搜索树最好的情况性能是O(logn)&#xff0c;最坏情况是O(n) 红黑树 它的时间复杂度是O(logn)&#xff0c;但是在数据量特别大的时候&#xff0c;树会特别高&#xff0c;就会遍历很多层级&#xff0c;对性能影响较大 BTree B树是一种多叉路衡查找树&#xff0c;相对于…

配置 conda为国内源

配置 Conda 使用非SSL源涉及到修改 Conda 的配置文件 .condarc。这个文件通常位于您的用户目录下&#xff0c;但如果它不存在&#xff0c;您可以手动创建一个。下面是具体操作步骤&#xff1a; 1. 找到或创建 .condarc 文件 Linux 和 macOS&#xff1a;打开终端。Windows&…

解决NVM安装Node失败:淘宝NPM镜像HTTPS证书到期及源切换指南

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

如果利用AOP/Aspect来修改方法的入参

问题描述&#xff1a; 最近项目代码过三方测试&#xff08;国企项目&#xff09;&#xff0c;在一系列代码扫描审计检查下&#xff0c;代码发现一部分修改&#xff0c;例如请求参数发生了编码/加密&#xff0c;导致后台需要对请求的参数进行解码/解密&#xff0c;后端那么接口&…

访问者模式(Visitor Pattern)

访问者模式 说明 访问者模式&#xff08;Visitor Pattern&#xff09;属于行为型模式&#xff0c;表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 该模式是将数据结构与数据操作分离的设计模式&#xff0c;是…

Flutter 多语言、主题切换之GetX库

多语言、主题切换之GetX库 前言正文一、配置项目二、模拟UI三、语言配置① 常量键② 语言配置文件③ 配置 四、持久化五、切换语言① my_home.dart② home.dart③ mine_controller.dart④ language_setting_controller.dart⑤ language_setting.dart⑥ mine.dart 六、切换主题①…

基于SpringBoot的“家政服务管理平台”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“家政服务管理平台”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统首页界面图 用户注册界面图 服务信息界面…

DM_SQL

DM_SQL 语言符合结构化查询语言 SQL 标准&#xff0c;是标准 SQL 的扩充。它集数据定义、数据查询、数据操纵和数据控制于一体&#xff0c;是一种统一的、综合的关系数据库语言。它功能强大&#xff0c;使用简单方便、容易为用户掌握。DM_SQL 语言具有如下特点&#xff1a; 1.…