关于vector的常见用法详解

关于vector的常见用法详解

简介

C++ STL提供了许多数据结构,其中vector是其中一个常用的容器。vector是一个动态可变数组,其大小可以在运行时改变。其背后实现的机制是使用数组来实现,同时使用一个整数来记录当前的容器大小。

常见用法

创建vector

我们可以使用以下方式来创建一个vector容器:

#include <vector>
using namespace std;

vector<int> v; // 创建一个空的整型vector
vector<string> str_vec(10); // 创建一个10个元素的字符串vector,每个元素都是空字符串
vector<char> char_vec(5, 'a'); // 创建一个5个元素的字符vector,每个元素都是'a'

访问vector元素

vector是一个类似于数组的数据结构,我们可以使用索引来访问其中的元素。同时,我们也可以使用迭代器来遍历vector中的元素。下面是两种访问元素的方式:

#include <vector>
#include <iostream>
using namespace std;

int main() {
    vector<int> v {1, 2, 3, 4, 5};

    // 通过索引访问元素
    cout << v[0] << endl; // 输出1
    cout << v.at(2) << endl; // 输出3

    // 使用迭代器访问元素
    for (auto it = v.begin(); it != v.end(); it++) {
        cout << *it << " ";
    }
    cout << endl; // 输出1 2 3 4 5

    return 0;
}

向vector中添加或删除元素

vector提供了多个函数来操作其中的元素。下面是两个比较常用的函数:

#include <vector>
#include <iostream>
using namespace std;

int main() {
    vector<int> v {1, 2, 3};

    // 添加元素
    v.push_back(4); // 在vector的末尾添加4
    v.insert(v.begin() + 1, 5); // 在下标为1的位置添加5

    // 删除元素
    v.pop_back(); // 删除vector的末尾元素
    v.erase(v.begin() + 1); // 删除下标为1的元素

    // 输出vector中的元素
    for (auto it = v.begin(); it != v.end(); it++) {
        cout << *it << " ";
    }
    cout << endl; // 输出1 3 4

    return 0;
}

示例说明

示例1

下面是一个vector的示例,演示了如何创建、访问、添加和删除元素:

#include <vector>
#include <iostream>
using namespace std;

int main() {
    // 创建vector
    vector<int> v {1, 2, 3};

    // 访问元素
    cout << v[0] << endl; // 输出1
    cout << v.at(1) << endl; // 输出2

    // 添加元素
    v.push_back(4); // 在vector的末尾添加4
    v.insert(v.begin() + 1, 5); // 在下标为1的位置添加5

    // 删除元素
    v.pop_back(); // 删除vector的末尾元素
    v.erase(v.begin() + 1); // 删除下标为1的元素

    // 输出vector中的元素
    for (auto it = v.begin(); it != v.end(); it++) {
        cout << *it << " ";
    }
    cout << endl; // 输出1 3

    return 0;
}

示例2

下面是一个使用vector进行排序的示例:

#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;

int main() {
    // 创建vector
    vector<int> v {5, 3, 2, 4, 1};

    // 排序
    sort(v.begin(), v.end());

    // 输出vector中的元素
    for (auto it = v.begin(); it != v.end(); it++) {
        cout << *it << " ";
    }
    cout << endl; // 输出1 2 3 4 5

    return 0;
}

结论

vector是C++ STL提供的一个常用的容器,其提供了多个函数用于操作其中的元素。我们可以使用索引或迭代器访问vector中的元素,也可以使用push_back、insert、pop_back、erase等函数来添加或删除元素。vector还提供了sort等算法函数,用于对其元素排序和查找。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于vector的常见用法详解 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • Swift进阶教程Mirror反射示例详解

    下面是“Swift进阶教程Mirror反射示例详解”的完整攻略。 简介 本文主要介绍在Swift语言中如何使用Mirror反射来查看和修改一个类的属性。其中包括对Mirror得到的信息的解读以及如何通过Mirror来修改属性值。本文适合对Swift有一定基础的开发者。 Mirror反射 Mirror是Swift中一种用于在运行时获取任意类型的结构、类、枚举以…

    C 2023年5月23日
    00
  • C++构造和解析Json的使用示例

    C++构造和解析Json的使用示例 简介 Json是一种轻量级的数据交换格式,常用于前后端数据传输、配置文件等。本文将介绍在C++中如何构造和解析Json数据。 Json库 C++中有很多称手的Json库,常用的有: RapidJson nlohmann/json C++ Json 这些库都提供了简单易用的Api,形式上大同小异,具体使用可以结合文档查询。 …

    C 2023年5月23日
    00
  • SpringBoot异步方法捕捉异常详解

    SpringBoot异步方法捕捉异常详解 介绍 SpringBoot提供了一种处理异步方法异常的机制,即AsyncUncaughtExceptionHandler接口。通过这个接口,我们可以自定义异常处理机制,在异步方法抛出异常时进行处理。本文将详细对这个机制进行讲解,并提供两个示例说明。 异步方法抛出异常的问题 在Java中,我们可以使用多线程或者异步方法…

    C 2023年5月23日
    00
  • php json转换成数组形式代码分享

    当我们在开发过程中需要将json格式的数据转换成数组的形式,可以使用PHP中提供的json_decode()函数。下面,我来详细讲解如何将json格式的数据转换成数组,并分享两个示例。 1. 将json转换成数组 使用方法: mixed json_decode(string $json, bool $assoc = false, int $depth = 5…

    C 2023年5月23日
    00
  • Vue编写多地区选择组件

    下面是关于如何使用Vue编写多地区选择组件的完整攻略: 1. 安装和引入相关组件 首先,需要安装和引入Vue框架及相关组件,让我们先来安装Vue: npm install vue 然后,我们需要安装一些用于处理地区选择的相关组件,如vue-i18n、vue-select和vue-multiselect。 分别安装方法如下: npm install vue-i…

    C 2023年5月23日
    00
  • JavaScript JSON.stringify()的使用总结

    以下是关于“JavaScript JSON.stringify()的使用总结”的完整攻略。 标题 介绍 在JavaScript中,JSON.stringify()是一种将JavaScript对象转换为JSON字符串的方法。它的作用是将一个对象序列化为一个JSON字符串,以便进行传输或存储,或者将其传递给一个将JSON格式数据作为输入的函数中。本文将探讨如何使…

    C 2023年5月23日
    00
  • FreeSWITCH添加iLBC编码及转码

    操作系统 :CentOS 7.6_x64 FreeSWITCH版本 :1.10.9 一、安装ilbc库 从第三方库里下载指定版本: git clone https://freeswitch.org/stash/scm/sd/libilbc.git 如果下载过慢,可从如下途径获取: 关注微信公众号(聊聊博文,文末可扫码)后回复 20230416 获取。 编译及…

    C语言 2023年4月17日
    00
  • 01-C语言概述

    C语言概述 1.什么是C语言 C语言就是人和计算机交流的一种语言语言是用来交流沟通的。有一方说,有另一方听,必须有两方参与,这是语言最重要的功能: 说的一方传递信息,听的一方接收信息; 说的一方下达指令,听的一方遵循命令做事情。 语言是人和人交流,C语言是人和机器交流。只是,人可以不听另外一个人,但是,计算机是无条件服从。语言有独特的语法规则和定义,双方必须…

    C语言 2023年4月18日
    00
合作推广
合作推广
分享本页
返回顶部