【C++STL基础入门】vector增、删操作

news2024/11/16 23:42:29

文章目录

  • 前言
  • 一、vector迭代器
    • 1.1 定义vector迭代器
    • 1.2 注意点
  • 二、vector增函数
    • 2.1 尾添加
      • 示例代码:
    • 2.2 中间添加
    • 2.3 效率问题
  • 三、vector删除操作
    • 3.1 尾删除
    • 3.2 删除指定元素
    • 3.3 删除所有
  • 总结


前言


一、vector迭代器

1.1 定义vector迭代器

vector<int>::iterator ite;

在这里插入图片描述

1.2 注意点

1、要有参数列表,少了没用
2、begin()和end()函数是一样使用的

二、vector增函数

2.1 尾添加

1、void push_back( const T &val );
功能:将给定的元素 val 添加到 vector 的末尾。

参数:

val:要添加的元素的值。
返回值:无(void)。

用途:push_back() 函数用于在 vector 的末尾添加新的元素。它可以接受一个常引用作为参数,表示要添加的元素的值。通过 push_back() 函数,可以动态地将元素添加到 vector 的尾部,实现动态数组的功能。

示例代码:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec;          // 声明一个空的 vector 容器

    vec.push_back(10);             // 向 vector 中添加元素 10
    vec.push_back(20);             // 向 vector 中添加元素 20
    vec.push_back(30);             // 向 vector 中添加元素 30

    std::cout << "Vector elements: ";
    for (const auto& num : vec) {   // 遍历 vector 中的元素并输出
        std::cout << num << " ";
    }
    std::cout << std::endl;

    return 0;
}

在这里插入图片描述

输出:

Vector elements: 10 20 30

在上述示例代码中,我们首先声明了一个空的 vector 容器 vec。然后使用 push_back() 函数连续三次将元素添加到 vector 的末尾,分别为 10、20 和 30。最后,我们遍历 vector 中的元素,并将其输出到控制台。输出结果显示 vector 中的元素为 10、20 和 30,证明了 push_back() 函数成功将元素添加到 vector 的末尾。

2.2 中间添加

1、 iterator insert( iterator loc, const T &val );
功能:将元素 val 插入到指定位置 loc 之前的位置。

参数:

loc:指向插入位置的迭代器。
val:要插入的元素的值。
返回值:指向插入的元素的迭代器。

用途:insert() 函数将元素 val 插入到指定位置 loc 之前的位置,返回指向插入元素的迭代器。通过使用 insert() 函数,可以在 vector 中的任意位置插入新的元素。

示例代码:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    std::vector<int>::iterator it = vec.begin() + 2;
    it = vec.insert(it, 10);

    std::cout << "Vector elements: ";
    for (const int& num : vec) {
        std::cout << num << " ";
    }
    std::cout << std::endl;

    return 0;
}

在这里插入图片描述

输出:

Vector elements: 1 2 10 3 4 5

在上面的示例中,我们初始化了一个包含整数的 vector vec。然后,我们使用 begin() 和 + 运算符获取指向索引为 2 的迭代器 it。接下来,我们将元素 10 插入到 it 所指向的位置之前使用 insert() 函数,并将返回的迭代器赋值给 it。最后,我们遍历 vector 并输出其中的元素,可以看到元素 10 成功地插入到了指定位置之前。

2、void insert( iterator loc, size_type num, const T &val );
3、void insert( iterator loc, input_iterator start, input_iterator end );

2.3 效率问题

三、vector删除操作

3.1 尾删除

3.2 删除指定元素

3.3 删除所有


总结

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

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

相关文章

30款教育学习类应用评测体验报告

为方便开发者更好地衡量APP在同类产品中的表现和竞争力&#xff0c;有针对性地进行产品优化&#xff0c;软件绿色联盟策划了垂类APP评测体验专题&#xff0c;目前已发布了天气类APP和小说类APP评测体验报告&#xff0c;本期将对教育学习类APP围绕绿标五大标准进行体验评测&…

流程控制之条件判断

一、if单分支结构 准备知识&#xff1a; 查看系统内存&#xff1a;free指令 -m表示以MB的大小显示 mem是系统内存&#xff0c;swap是虚拟内存&#xff0c;需要将系统剩余内存大小过滤出来&#xff0c;之后与100M对比 也可以用awk指令 使用正则表达式过滤&#xff0c;以空格…

vue 简单实验 自定义组件 component

1.代码 <script src"https://unpkg.com/vuenext" rel"external nofollow" ></script> <div id"components-demo"><button-counter></button-counter> </div> <script> // 创建一个Vue 应用 const ap…

【MySQL】1、MySQL数据库的基本概念

数据库的基本概念 1.数据 1&#xff09;描述事物的符号记录称为数据&#xff1b;数字&#xff0c;文字&#xff0c;图形&#xff0c;图像&#xff0c;声音&#xff0c;档案记录等都是数据 2&#xff09;数据是以“记录”的形式按照统一的格式进行存储的&#xff0c;而不是杂乱…

c++都补了c语言哪些坑?

目录 1.命名空间 1.1 定义 1.2 使用 2.缺省参数 2.1 概念 2.2 分类 3.函数重载 4.引用 4.1 概念 4.2 特性 4.3 常引用 4.4 引用和指针的区别 5.内联函数 1.命名空间 在 C/C 中&#xff0c;变量、函数和后面要学到的类都是大量存在的&#xff0c;这些变量、函数和类的名称将…

像Vuex一样使用redux

redux基础知识 本篇文章主要介绍redux的基本使用方法&#xff0c;并简单封装&#xff0c;像vuex一样写redux 学习文档 英文文档: https://redux.js.org/ 中文文档: http://www.redux.org.cn/ Github: https://github.com/reactjs/redux redux是什么 redux和vuex几乎是一…

EasyExcel实现多sheet文件分批导入

文章目录 EasyExcel引入依赖表结构学生表课程表教师表 项目结构DozerUtils工具类实体类StudentCourseTeacher Controller监听类StudentListenerCourseListenerTeacherListener ServiceEasyExcelServiceStudentServiceCourseServiceTeacherService ServiceImplEasyExcelServiceI…

入行嵌入式,未来能干啥?

嵌入式技术近些年来发展迅猛&#xff0c;已经广泛应用于各个领域。那么&#xff0c;如果选择入行嵌入式&#xff0c;未来能够从事哪些有趣且有前景的工作呢&#xff1f; 1. 智能家居领域 随着物联网技术的快速发展&#xff0c;智能家居成为了人们追求便利和舒适的新时尚。作为嵌…

LeetCode 1267. 统计参与通信的服务器

【LetMeFly】1267.统计参与通信的服务器 力扣题目链接&#xff1a;https://leetcode.cn/problems/count-servers-that-communicate/ 这里有一幅服务器分布图&#xff0c;服务器的位置标识在 m * n 的整数矩阵网格 grid 中&#xff0c;1 表示单元格上有服务器&#xff0c;0 表…

<kernel>kernel 6.4 USB-之-usb_new_device()分析

&#xff1c;kernel&#xff1e;kernel 6.4 USB-之-usb_new_device()分析 kernel 6.4 USB系列文章如下&#xff1a; &#xff1c;kernel&#xff1e;kernel 6.4 USB-之-hub_event()分析 &#xff1c;kernel&#xff1e;kernel 6.4 USB-之-port_event()分析 &#xff1c;kernel…

​直播预告丨特邀中国人寿Soul专家分享APP合规与稳定性治理经验

由软件绿色联盟主办的月度技术活动将于7月28日19点进行线上直播。本次直播以“APP安全合规与稳定性治理”为主题&#xff0c;特邀中国人寿、Soul的专家&#xff0c;分别为大家带来《中国人寿寿险APP合规之路经验分享》、《Soul Android 端稳定性治理》议题直播。赶紧预约↑吧&a…

JAVA JNA 调用C接口的三种方式

文章目录 1. 准备一个共享库文件2. JNA姿势1—继承Library接口3. JNA姿势2—直接NativeLibrary.getInstance3. JNA姿势3—Native方法 1. 准备一个共享库文件 test.c #include <stdio.h> int test(char *input){printf("input:%s\n",input);return 0; }libtes…

智能离子风棒联网监控静电消除器的主要特点和功能

智能离子风棒联网监控静电消除器是一种利用互联网技术实现远程监测和控制的设备。它可以通过传感器感知静电水平&#xff0c;并将数据传输到云端服务器进行处理和存储。用户可以通过手机、电脑等终端设备&#xff0c;通过互联网接入平台&#xff0c;实时查看静电水平、工作状态…

EasyExcel实现Excel导出

文章目录 EasyExcel引入依赖项目结构导出模板类ControllerServiceServiceImplmapper 启动项目PostMan测试 EasyExcel EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。 他能让你在不用考虑性能、内存的等因素的情况下&#xff0c;快速完成Excel的…

SQL 数据库

安装配置 【1】 MySQL安装配置教程&#xff08;超级详细、保姆级&#xff09; 【2】 MySQLNavicat安装配置教程&#xff08;超级详细、保姆级&#xff09; 学习资料 【戴师兄】SQL入门免费教程 刷题链接&#xff1a;https://share.mubu.com/doc/4BHMMbbvIMb 学习笔记&#xf…

【无标题】CloudOS:物联网开发平台,云上开发,边端交付

什么是物联网&#xff1f; 物联网&#xff08;Internet of Things&#xff0c;简称IoT&#xff09;是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术&#xff0c;实时采集任何需要监控、 连接、互动的物体或过程&#xff0c;采集…

RFID数据采集设备怎么选择?

RFID技术具有非接触识别的特性&#xff0c;可对贴有RFID标签的物体进行远距离非接触的批量识别&#xff0c;也是当下发展成熟的数据采集技术之一。RFID数据采集设备可对标签信息进行处理&#xff0c;并将读取到的标签信息传输到上位机中&#xff0c;针对不同的应用场景&#xf…

Linux系统root用户使用mv命令移动“/“根目录所有文件恢复方法

在使用mv命令对文件进行移动时&#xff0c;由于操作失误移动了根目录&#xff0c;导致除了cd命令&#xff0c;其他命令都无法使用。此时可以使用./ tab键查看当前目录下的文件此时无法再通过mv命令移动回去&#xff0c;因为执行mv命令的脚本ld-linux-x86-64.so.2找不到了。 正…

代码实现判断程序是32位还是64位

nuget 引入 Vanara.PInvoke.Kernel32 测试程序&#xff1a; using Vanara.PInvoke;var isExe Kernel32.GetBinaryType("C:\Windows\notepad.exe", out var type); if (!isExe) {return; } Console.WriteLine(type); // SCS_64BIT_BINARY如果是 32 位程序&#xff0…

学习JAVA打卡第三十六天

应用举例 例子&#xff1a;熟悉带finally子语句的try-catch语句&#xff0c;语句格式如下&#xff1a; 其执行机制是&#xff1a;在执行try-catch语句后执行finally语句&#xff0c;也就是说无论在try部分是否发生异常finally语句都会被执行。 但需要注意以下两种特殊情况&am…