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

数据结构:动态数组vector

vector 是 C++ 标准库的动态数组。

在C语言中一般初学者会使用malloc,int[n]等方式来创建静态数组,但是这种方式繁琐且容易出错。我们做算法题一般使用动态数组vector, 并且在刷题网站的题目给的输入一般也是vector类型。

 示例:vector的初始化如下:

#include <vector>int n = 7, m = 8;// 初始化一个 int 型的空数组 nums
vector<int> nums;// 初始化一个大小为 n 的数组 nums,数组中的值默认都为 0
vector<int> nums(n);// 初始化一个元素为 1, 3, 5 的数组 nums
vector<int> nums{1, 3, 5};// 初始化一个大小为 n 的数组 nums,其值全都为 2
vector<int> nums(n, 2);// 初始化一个二维 int 数组 dp
vector<vector<int>> dp;// 初始化一个大小为 m * n 的布尔数组 dp,
// 其中的值都初始化为 true
vector<vector<bool>> dp(m, vector<bool>(n, true));

vector的操作示例:

 

#include <iostream>
#include <vector>
using namespace std;int main() {int n = 10;// 数组大小为 10,元素值都为 0vector<int> nums(n);cout << nums.empty() << endl;  // 输出 0 (false)cout << nums.size() << endl;   // 输出:10nums.push_back(20);   // 在数组尾部插入一个元素 20cout << nums.size() << endl;  // 输出:11cout << nums.back() << endl;  // 得到数组最后一个元素的引用     输出:20nums.pop_back();     // 删除数组的最后一个元素(无返回值)cout << nums.size() << endl;     // 输出:10nums[0] = 11;        // 可以通过方括号直接取值或修改cout << nums[0] << endl;       // 输出:11nums.insert(nums.begin() + 3, 99);      // 在索引 3 处插入一个元素 99nums.erase(nums.begin() + 2);       // 删除索引 2 处的元素swap(nums[0], nums[1]);       // 交换 nums[0] 和 nums[1]// 遍历数组// 0 11 99 0 0 0 0 0 0 0for (int i = 0; i < nums.size(); i++) {cout << nums[i] << " ";}cout << endl;
}

另外,根据数组的特性,利用索引访问元素很高效,从尾部删除元素也是很高效的;但是从中间或者头部删除或增加元素需要数据搬移,很低效。

相关文章:

数据结构:动态数组vector

vector 是 C 标准库的动态数组。 在C语言中一般初学者会使用malloc&#xff0c;int[n]等方式来创建静态数组&#xff0c;但是这种方式繁琐且容易出错。我们做算法题一般使用动态数组vector&#xff0c; 并且在刷题网站的题目给的输入一般也是vector类型。 示例&#xff1a;vect…...

【HeadFirst系列之HeadFirst设计模式】第9天之模板方法模式:从咖啡和茶到Spring框架,掌握设计模式的精髓

模板方法模式&#xff1a;从咖啡和茶到Spring框架&#xff0c;掌握设计模式的精髓 《Head First 设计模式》是一本经典的设计模式入门书籍&#xff0c;它以轻松幽默的方式讲解了设计模式的核心思想。其中&#xff0c;模板方法模式是一个非常简单但非常实用的设计模式&#xff…...

力扣hot100——排序链表(常见方法,归并排序)

解题思路&#xff1a; 分解&#xff08;Divide&#xff09;&#xff1a;将待排序的列表递归地分成两半&#xff0c;直到每个子列表只包含一个元素&#xff08;此时每个子列表都是有序的&#xff09;。解决&#xff08;Conquer&#xff09;&#xff1a;递归地对每个子列表进行排…...

使用 DeepSeek 和 ECharts 实现大屏数据可视化

引言 在当今数据驱动的时代,数据可视化成为了分析和展示数据的重要手段。大屏数据可视化不仅能够直观地展示数据,还能帮助决策者快速理解复杂信息。本文将介绍如何结合 DeepSeek(一个强大的数据处理与分析工具)和 ECharts(一个流行的数据可视化库)来实现大屏数据可视化。…...

基于springboot+vue的新生报到管理系统

一、系统架构 前端&#xff1a;vue | element-ui | echarts 后端&#xff1a;springboot | mybatis-plus | jwt 环境&#xff1a;jdk1.8 | mysql | maven 二、代码及数据 三、功能介绍 01. 登录 02. 首页 03. 管理员-系统管理-用户管理 04. 管理员-系统…...

【面试系列】Java开发--AI常见面试题

文章目录 1、实际工作或学习中用过哪些Ai工具1.1、AI编程1.2、AI对话聊天1.3、AI图像工具1.4、AI办公工具 2、谈谈你知道的AI领域的一些常见词汇及其含义的理解&#xff1f; 例如AIGC、LLM、DeepLearning分别是什么意思&#xff1f;2.1、AIGC&#xff08;Artificial Intelligen…...

Maven 基础环境搭建与配置(二)

四、本地仓库配置&#xff0c;存储依赖 在 Maven 的世界里&#xff0c;本地仓库就像是一个 “私人储物间”&#xff0c;专门用来存放项目所需的各种依赖构件&#xff0c;如 JAR 包、WAR 包等。当我们构建项目时&#xff0c;Maven 会首先在本地仓库中查找所需的依赖&#xff0c…...

了解ffmpeg,安装并配置环境变量

一、了解FFmpeg FFmpeg 是一个功能强大的开源多媒体框架&#xff0c;能够处理音视频的录制、转换和流媒体传输。它由 Fabrice Bellard 发起&#xff0c;采用 LGPL/GPL 许可证&#xff0c;广泛应用于各种平台&#xff0c;包括 Linux、Windows 和 macOS 什么是FFmpeg&#xff1…...

Deepseek reasoning-content 透出调研

Deepseek reasoning-content 透出调研 部署方式&#xff1a;Docker Ollama Deepseek-R1:8b 参考&#xff1a; https://help.apiyi.com/deepseek-reasoning-content-guide.htmlhttps://yuluo-yx.github.io/blog/%E4%BD%BF%E7%94%A8-Ollama-%E9%83%A8%E7%BD%B2-DeepSeek-%E5…...

Codes 开源免费研发项目管理平台 2025年第一个大版本3.0.0 版本发布及创新的轻IPD实现

Codes 简介 Codes 是国内首款重新定义 SaaS 模式的开源项目管理平台&#xff0c;支持云端认证、本地部署、全部功能开放&#xff0c;并且对 30 人以下团队免费。它通过创新的方式简化研发协同工作&#xff0c;使敏捷开发更易于实施。并提供低成本的敏捷开发解决方案&#xff0…...

Leetcode K个一组翻转链表

双指针法&#xff0c;java solution class Solution {public ListNode reverseKGroup(ListNode head, int k) {if(head null || head.next null) return head;//设置pre和index节点ListNode pre head, index head.next;int m 0;while(m < k && index ! null) …...

电脑开机一段时间就断网,只有重启才能恢复网络(就算插网线都不行),本篇文章直接解决,不要再看别人的垃圾方法啦

下面的是我解决问题的心路历程&#xff0c;不想看的可以直接跳到解决方法上面&#xff01; 内心思路&#xff1a; w11电脑更新过系统后&#xff0c;我的电脑是常年不关机的&#xff0c;但是一天突然断网&#xff0c;试了很多方法都连不上&#xff0c;重启电脑就会好&#xff0…...

Python 性能剖析利器:DTrace 与 SystemTap 深度指南

在 Python 开发过程中&#xff0c;深入了解程序的运行时行为对于优化性能、排查问题至关重要。本文聚焦于 DTrace 和 SystemTap 这两款强大的监控工具&#xff0c;详细介绍它们在 CPython 中的应用&#xff0c;包括启用静态标记、编写 DTrace 和 SystemTap 脚本、利用可用的静态…...

unity学习47:寻路和导航,unity2022后版本如何使用 Navmesh 和 bake

目录 1 寻路和导航对移动的不同 1.1 基础的移动功能 1.1.1 基础移动 1.1.2 智能导航寻路 1.1.3 智能导航寻路还可以 2 如何实现这个效果&#xff1f; 2.1 通过地图网格的形式 2.1.1 警告信息 the static value has been deprecated的对应搜索 2.1.2 新的navigation ba…...

工作-绩效笔记

文章目录 销售项目经理研发项目管理人天拆分抓手评估人天如何拆的细而且有理有据管理等 对这个一直不感兴趣&#xff0c;干好活就行了&#xff0c;但是公司肯定是出于量化的指标&#xff0c;而且不同角色指标不一样&#xff0c;记录下也科普下自己。 销售 销售额 确收、回款 …...

GPT-SoVITS更新V3 win整合包

GPT-SoVITS 是由社区开发者联合打造的开源语音生成框架&#xff0c;其创新性地融合了GPT语言模型与SoVITS&#xff08;Singing Voice Inference and Timbre Synthesis&#xff09;语音合成技术&#xff0c;实现了仅需5秒语音样本即可生成高保真目标音色的突破。该项目凭借其开箱…...

WPF的页面设计和实用功能实现

目录 一、TextBlock和TextBox 1. 在TextBlock中实时显示当前时间 二、ListView 1.ListView显示数据 三、ComboBox 1. ComboBox和CheckBox组合实现下拉框多选 四、Button 1. 设计Button按钮的边框为圆角&#xff0c;并对指针悬停时的颜色进行设置 一、TextBlock和TextBox…...

Python项目源码34:网页内容提取工具1.0(Tkinter+requests+html2text)

------★Python练手项目源码★------- Python项目32&#xff1a;订单销售额管理系统1.0&#xff08;TkinterCSV&#xff09; Python项目31&#xff1a;初学者也能看懂的聊天机器人1.0源码&#xff08;命令行界面Re正则表达式&#xff09; Python项目源码30&#xff1a;待办事…...

javaSE学习笔记22-线程(thread)-线程通信、线程池

线程通信 应用场景&#xff1a;生产者和消费者问题 假设仓库中只能存放一件产品&#xff0c;生产者将生产出来的产品放入仓库&#xff0c;消费者将仓库中产品取走消费 如果仓库中没有产品&#xff0c;则生产者将产品放入仓库&#xff0c;否则停止生产并等待&#xff0c…...

vue单据打印 一维码、二维码实现

编码规则与 JavaScript 代码实现 编码规则数组&#xff1a;定义了 Code 128 条形码编码规则数组 BARS&#xff0c;其中每个数字对应一种条形码的线条组合模式。 const BARS [212222,222122,222221,121223,121322,131222,122213,122312,132212,221213,221312,231212,112232,12…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵&#xff0c;其中每行&#xff0c;每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid&#xff0c;其中有多少个 3 3 的 “幻方” 子矩阵&am…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...