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

来聊聊C++中的vector

一.vector简介 

vector是什么

C++ 中的 vector 是一种序列容器,它允许你在运行时动态地插入和删除元素。

vector 是基于数组的数据结构,但它可以自动管理内存,这意味着你不需要手动分配和释放内存。

与 C++ 数组相比,vector 具有更多的灵活性和功能,使其成为 C++ 中常用的数据结构之一。

vector 是 C++ 标准模板库(STL)的一部分,提供了灵活的接口和高效的操作。

 就相当于一个智能数组,你用多少,它就给你多少

基本特性

  • 动态大小vector 的大小可以根据需要自动增长和缩小。
  • 连续存储vector 中的元素在内存中是连续存储的,这使得访问元素非常快速。
  • 可迭代vector 可以被迭代,你可以使用循环(如 for 循环)来访问它的元素。
  • 元素类型vector 可以存储任何类型的元素,包括内置类型、对象、指针等。

使用场景

  • 当你需要一个可以动态增长和缩小的数组时。
  • 当你需要频繁地在序列的末尾添加或移除元素时。
  • 当你需要一个可以高效随机访问元素的容器时。

 二.vector的使用

        1.准备工作

                <vector> 头文件

#include<vector>

                还有C++编程基础

        2.创建一个vector

#include <vector>           //头文件
#include <iostream>
using namespace std;
int main(){
    vector<int> a;          //创建一个vector,是int类型的
    return 0;
}

        添加元素

                      可以使用 push_back 方法向 vector 中添加元素:

myVector.push_back(7); // 将整数 7 添加到 vector 的末尾

        访问元素

                        可以使用下标操作符 [] 或 at() 方法访问 vector 中的元素:

int x = myVector[0]; // 获取第一个元素
int y = myVector.at(1); // 获取第二个元素

        获取大小

                        可以使用 size() 方法获取 vector 中元素的数量:

int size = myVector.size(); // 获取 vector 中的元素数量

        删除元素

                        可以使用 erase() 方法删除 vector 中的元素:

myVector.erase(myVector.begin() + 2); // 删除第三个元素

        清空 vector

                        可以使用 clear() 方法清空 vector 中的所有元素:

myVector.clear(); // 清空 vector

三.评论收藏,下篇博客再见!

大家可以用vector制作一些有创意的东西,发在评论区

我会选出最佳读者并为其送去关注!

http://www.dtcms.com/a/113591.html

相关文章:

  • C++学习之线程
  • [Android安卓移动计算]:新建项目和配置环境步骤
  • 力扣DAY35 | 热100 | LRU缓存
  • 在windows环境下通过docker-compose脚本自动创建mysql和redis
  • SQL Server常见问题的分类解析(二)
  • 分治-归并排序-逆序对问题
  • 计算机视觉图像处理基础系列:滤波、边缘检测与形态学操作
  • 小迪安全110-tp框架,版本缺陷,不安全写法,路由访问,利用链
  • Android使用OpenGL和MediaCodec渲染视频
  • AI浪潮下,“内容创作平台”能否借势实现内容价值跃升?
  • Turtle图形化编程知识点汇总:让编程更有趣
  • IDEA 2024.3.5 中修改 web.xml 的 Servlet 版本(比如从 4.0 修改为 5.0)
  • I.MX6ULL开发板与linux互传文件的方法--NFS,SCP,mount
  • AbstractBeanFactory
  • 基于SSM的车辆管理系统的设计与实现(代码+数据库+LW)
  • kd树和球树
  • Java中使用OpenCV实现怀旧滤镜时遇到的UnsatisfiedLinkError问题及解决方案
  • 一文读懂 MCP!
  • chromadb
  • Swift 扩展
  • 微服务架构与中台的关系
  • 高通camx ThreadManager
  • 【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring Boot 的未来:从微服务到云原生的演进
  • Hyperlane框架:下一代高性能Rust Web框架 [特殊字符]
  • 学习笔记,DbContext context 对象是保存了所有用户对象吗
  • ring语言,使用vscode编辑器
  • AtCoder Beginner Contest 399 D,F 题解
  • 对迭代器模式的理解
  • Arduino示例代码讲解:Knock Sensor 敲击感知器
  • 每日一题(小白)模拟娱乐篇14