C++ vector基本用法

一、vector定义和初始化

在C++中,vector是一种动态数组,可以根据需要自动增长和缩减

std::vector<type> name;

其中,type表示元素类型name是vector的名称。初始化vector的方法很简单,只需要在括号中提供一些初始化值即可:

 std::vector<int> v = {1, 2, 3, 4, 5};

在上述代码中,我们定义了一个名为v的vector,并初始化了它为包含5个整数的数组。

二、访问元素

要访问vector中的元素,可以使用索引。vector的索引从0开始,可以使用以下语法:

element = vector[index];

 例如,要访问vector v 中的第一个元素,可以使用以下代码

int first_element = v[0];

需要注意的是,vector的索引可以是整数类型或迭代器类型。在C++中,可以使用迭代器来遍历vector中的所有元素。

三、添加和删除元素

要向vector中添加元素,可以使用push_back()函数。该函数将一个元素添加到vector的末尾。例如:

v.push_back(6); // 向v中添加一个整数6

要删除vector中的元素,可以使用erase()函数。该函数接受一个迭代器参数,用于指定要删除的元素。例如:

v.erase(v.begin() + 2); // 删除vector中的第三个元素(索引为2)

四、操作向量大小和容量

可以使用size()函数获取vector的大小(即元素的数量),使用capacity()函数获取vector的容量(即可以容纳的元素数量)。这些函数都是成员函数,可以直接在vector对象上调用。例如:

int size = v.size(); // 获取v的大小(即元素的数量) 
int capacity = v.capacity(); // 获取v的容量(即可以容纳的元素数量)

需要注意的是,vector的大小和容量是不同的概念。当向vector中添加元素时,如果容量不足,会自动分配更大的内存空间来存储元素。但是这个过程并不是实时进行的,可能会对性能产生影响。因此,在编程时需要注意避免过度使用向vector中添加大量元素的操作。

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

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

相关文章

ZYNQ_project:HDMI

实验目标&#xff1a;先显示彩条&#xff0c;通过uart串口传输100x100 大小图片像素信息&#xff0c;然后开始弹跳显示该图片在显示器上。 HDMI 是新一代的多媒体接口标准&#xff0c; 英文全称是 High-Definition Multimedia Interface&#xff0c; 即高清多媒体接口。 它能够…

录视频人不在电脑旁,怎么设置定时关机

如果你平常工作比较忙&#xff0c;或者要录制的视频/音频文件需要很长时间&#xff0c;最好选择预约录制&#xff0c;这样可使录屏软件自动开始和停止录制&#xff0c;并且定时关机。此外&#xff0c;你还可以设置保存录制文件、关闭录屏软件。是不是听起来很感兴趣&#xff1f…

vs qt 解决没有network 无法打开包括文件: “QNetworkAccessManager”: No such

visual stdio qt没有pro文件-CSDN博客 qtprojectSetting -> qt Modules 添加network 依赖

进程程序替换和shell实现

先前fork说创建子进程执行代码&#xff0c;如何让子进程执行和父进程完全不一样的代码?程序替换。 一 单进程替换演示 1 execl函数使用 最近转到在vs code下写代码&#xff0c;之前也在xhell下用过execl函数&#xff0c;所以才想写篇博客总结总结&#xff0c;没想到在vs code…

Docker Compose简单入门

Docker Compose 简介 Docker Compose 是一个编排多容器发布式部署的工具&#xff0c;提供命令集管理容器化应用的完整开发周期&#xff0c;包括服务构建&#xff0c;启动和停止。 Docker Compose 真正的作用是在一个文件&#xff08;docker-compose.yml&#xff09;中定义并运…

socket Send-Q,Recv-Q 全连接队列打满

1、 # coding = utf-8 # -*- coding:utf-8 -*- import socket import time BUFSIZE=1024 ip_port = (2.2.2.2,8081) s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#创建套接字 s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind(ip_port)#绑定地址 s.lis…

Arthas安装及简单使用

一. 背景介绍 Arthas 是 Alibaba 在 2018 年 9 月开源的 Java 诊断工具。支持 JDK6&#xff0c; 采用命令行交互模式&#xff0c;提供 Tab 自动补全&#xff0c;可以方便的定位和诊断线上程序运行问题。得益于 Arthas 强大且丰富的功能&#xff0c;让 Arthas 能做很多的事情&a…

超声波眼镜清洗机是智商税吗?2023年超声波清洗机比较不错推荐

随着科技的日新月异&#xff0c;我们生活中充满了各种各样的智能设备。其中&#xff0c;超声波清洗机以其独特的清洗能力&#xff0c;逐渐走进我们的生活。然而&#xff0c;对于很多人来说&#xff0c;超声波清洗机还是一个相对陌生的概念。那么&#xff0c;超声波清洗机到底是…

P9 链表 清空链表|销毁链表

目录 前言 01销毁链表 02 清空链表 测试代码 前言 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ &#x1f525; 推荐专栏2: 《Linux C应用编程&#xff08;概念类&#xff09;_ChenPi的博客-CSDN博客》✨✨✨ …

Markdown语法入门与进阶指南

一、Markdown简介 Markdown是一种轻量级标记语言&#xff0c;创始人为约翰格鲁伯&#xff08;john Gruber&#xff09;。它允许人们使用易读易写的纯文本格式编写文档&#xff0c;然后转换成有效的XHTML&#xff08;或者HTML&#xff09;文档。这种语言吸收了很多在电子邮件中…

Spring Session介绍

Spring SessionSession储存到Redis1&#xff1a;添加依赖2&#xff1a;配置信息3:Spring Session存String3:Spring Session存对象 项目改造-Redis储存Session Spring Session Spring Session储存在Redis和取的执行流程&#xff1a; 1&#xff1a;request.getSession() 方法时&…

地隔离放大器集成电路芯片D3121,低噪声低失真双通道且外接电容小,能有效消除由线 路电阻所引起的问题及噪声

D3121 是一块对地能动冲放大器集成电路&#xff0c;该电路能有效消除由线 路电阻所引起的问题及噪声。所需外围电容小&#xff0c;便于设计时小型化的同 时可靠性不降低。广泛应用于车载音响系统内。 D3121 系列采用 DIP8 、 SOP8 、 SIP8 的封装形式封装。 主要特点&#x…

Java Files的常用方法都有哪些?

Java Files的常用方法都有哪些&#xff1f; 在Java中&#xff0c;java.nio.file.Files 类提供了许多用于操作文件和目录的静态方法。以下是一些常用的方法&#xff0c;以及相应的代码示例&#xff1a; 1. 读取文件内容&#xff1a; readAllLines(Path path, Charset cs)&…

Qt应用开发(Quick篇)——矩形模块 Rectangle

一、前言 矩形模块用于用纯色或渐变填充区域&#xff0c;或者提供一个矩形边框。 二、外观 每个矩形项都可以使用使用color属性指定的纯填充色、使用gradient类型定义并使用gradient属性设置的渐变来绘制。如果同时指定了颜色和渐变效果&#xff0c;则只会生效渐变效果。 通过…

服务端突然断电

192.168.137.10 访问192.168.137.200 ,突然192.168.137.200断电,192.168.137.10还是能看到estab连接 scanscan-virtual-machine:~$ sudo netstat -nap | grep 8081 tcp 0 0 192.168.137.10:48666 192.168.137.200:8081 ESTABLISHED 30035/telnet tcp …

Python:核心知识点整理大全2-笔记

在本章中&#xff0c;你将学习可在Python程序中使用的各种数据&#xff0c;还将学 习如何将数据存储到变量中&#xff0c;以及如何在程序中使用这些变量。 2.1 运行 hello_world.py 时发生的情况 运行hello_world.py时&#xff0c;Python都做了些什么呢&#xff1f;下面来深入…

NFTScan | 11.27~12.03 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期&#xff1a;2023.11.20~ 2023.11.26 NFT Hot News 01/ Web3 教育平台 Open Campus 获 Binance Labs 315 万美元投资 11 月 27 日&#xff0c;Binance Labs 已向社区主导的 Web3 教育平台 Open Campu…

Selenium自动化测试工具使用方法汇总

1、设置无头浏览器模式 from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options Options() chrome_options.add_argument(- -headless) chrome_options.add_argument(- -disable-gpu) class XX(object): self.driver webdriv…

Python selenium自动化测试模型图解

1、线性测试 优势&#xff1a;每一个脚本都是完整独立的&#xff0c;每一个脚本对应一个测试用例 缺点&#xff1a;开发成本高&#xff0c;会有重复操作重复脚本&#xff1b;维护成本也高&#xff0c;修改重复操作的脚本时&#xff0c;要逐一进行修改。 2、模块化驱动测试 …

深入理解 Vue 中的指针操作(一)

文章目录 ☘️引言☘️什么是指针☘️基本用法&#x1f343; v-if和v-show指令&#x1f33f;v-if&#x1f33f;v-show&#x1f33f;v-if *VS* v-show &#x1f343;v-bind绑定指令&#x1f343;v-on指令&#x1f33f;事件修饰符&#x1f331;.stop&#x1f331;.prevent&#x…