c++ vector对象相关总结

C++ Vector对象相关总结

什么是Vector?

Vector是C++标准库中的一个动态数组容器,可自动管理其大小(即内存分配和释放),支持快速随机访问。

动态数组顾名思义就是可以动态增长的数组。和普通数组不同之处在于,普通数组在定义时需要明确指定数组大小,而动态数组则可以在运行时根据需要改变大小。

Vector的使用方法

首先需要包含头文件。

1.定义和初始化

vector<int> nums;       // 创建空的vector对象
vector<int> nums(10);   // 创建10个元素的vector对象,每个元素初始化为0
vector<int> nums(10, 1);// 创建10个元素的vector对象,每个元素初始化为1
vector<int> nums{1, 2, 3, 4, 5};  // 创建5个元素的vector对象,初始化为1, 2, 3, 4, 5

2.元素访问

vector<int> nums{1, 2, 3, 4, 5};
cout << nums[2] << endl; // 访问vector的第3个元素,输出:3
cout << nums.at(2) << endl; // 同上,输出:3

// 遍历vector的所有元素
for (int i = 0; i < nums.size(); i++) {
    cout << nums[i] << " ";
}
cout << endl;

3.元素操作

vector<int> nums{1, 2, 3, 4, 5};

// 在vector末尾添加一个元素
nums.push_back(6);    // nums: 1 2 3 4 5 6

// 在第2个位置插入元素7
nums.insert(nums.begin() + 1, 7); // nums: 1 7 2 3 4 5 6

// 删除第3个元素
nums.erase(nums.begin() + 2); // nums: 1 7 3 4 5 6

// 获取vector的大小
cout << nums.size() << endl; // 输出:6

vector与数组的比较

vector的优点

  1. 支持动态内存分配和释放,可以随时扩展或缩小容量;
  2. 提供快速随机访问,可以像数组一样使用下标操作元素;
  3. 提供多种操作方法,如插入和删除等,方便修改容器中的元素;
  4. 具有异常安全保证,即除非程序显式退出,否则不会出现调用vector方法时发生的异常而导致程序崩溃的情况。

数组的优点

  1. 占用更少的内存空间,可以根据所需的大小手动分配内存,更适合对内存空间有限的嵌入式系统等场合;
  2. 数组操作更加简单直观,只需要知道数组长度和下标就可以访问、更新元素。

示例说明

示例1:求vector的和

下面是一个使用vector的求和例子。

#include <vector>
#include <iostream>

using namespace std;

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

    int sum = 0;
    for (int i = 0; i < nums.size(); i++) {
        sum += nums[i];
    }
    cout << "vector的和为:" << sum << endl;

    return 0;
}

输出结果:

vector的和为:15

示例2:向vector插入元素

下面是一个向vector插入元素的例子。

#include <vector>
#include <iostream>

using namespace std;

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

    nums.insert(nums.begin() + 2, 6); // 在第3个位置插入元素6

    cout << "vector的大小为:" << nums.size() << endl;
    for (int i = 0; i < nums.size(); i++) {
        cout << nums[i] << " ";
    }
    cout << endl;

    return 0;
}

输出结果:

vector的大小为:6
1 2 6 3 4 5

以上就是关于C++ Vector对象相关总结的内容,希望能对大家有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c++ vector对象相关总结 - Python技术站

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

相关文章

  • 笔记本开机进不去系统 错误代码0xc000000f的解决办法

    笔记本开机进不去系统 错误代码0xc000000f的解决办法 引言 当笔记本电脑启动后无法进入操作系统时,它会显示一个蓝屏幕并提示错误代码0xc000000f。这种情况可能会让人感到困惑和不安,但好消息是,许多人已经找到了一些解决办法,可以帮助你快速修复这个问题。 在本篇攻略中,我们将详细解释什么是错误代码0xc000000f和可能引起此错误的原因。同时,我…

    C 2023年5月23日
    00
  • C++实现Dijkstra(迪杰斯特拉)算法

    当我们需要在一个带权重的图中找到起始点到目标点的最短路径时,Dijkstra算法是一种较为常见的解决方法。下面,我将为大家详细讲解如何使用C++语言实现Dijkstra算法的完整攻略。 前置知识 在学习本文之前,你需要掌握以下基础知识: C++语言基础 图的基本概念和表示方法 最短路径问题和算法 如果你对上述知识点掌握不够扎实,我建议你先去学习相关基础知识。…

    C 2023年5月22日
    00
  • C++命令行解析包gflags的使用教程

    C++命令行解析包gflags的使用教程 什么是gflags? gflags是Google开源的C++命令行解析包,可以方便的对C++程序进行命令行参数的解析,自动生成帮助信息等操作。使用gflags需要引入头文件。 gflags的基本用法 在C++程序中使用gflags的过程中,主要可以通过两个宏定义来添加命令行参数: DEFINE_xx: 定义一个命令行…

    C 2023年5月23日
    00
  • Redis教程(五):Set数据类型

    下面我将为你详细讲解一下“Redis教程(五):Set数据类型”的完整攻略。 一、Set数据类型的概述 Set(集合)时Redis支持的五种数据类型之一,是一个无序、无重复元素的集合。Set类型支持添加、删除和查询操作。Set中不支持重复元素,即每个元素都是唯一的。 二、Set数据类型的命令 1. SADD 用于向集合中添加元素,如果元素已经存在,则不执行任…

    C 2023年5月22日
    00
  • C++类的定义与实现

    下面我将详细讲解“C++类的定义与实现”的完整攻略。包含以下几个方面: C++类的定义与声明 C++类的成员函数和成员变量 C++类对象的创建与使用 示例说明 C++类的定义与声明 C++中可以使用class关键字来定义类,通常情况下类定义和声明会放在.h文件中,具体代码如下: // MyClass.h class MyClass { public: voi…

    C 2023年5月23日
    00
  • Java编程基础测试题分享

    Java编程基础测试题分享攻略 背景说明 Java编程入门的学习是需要实践的。而测试题是测试自己知识掌握情况的重要方式之一。本文将介绍如何准备Java编程基础测试题,以及如何完整的解答测试题,帮助初学者更好地进行自我学习和检验。 准备测试题 找到适当的测试题,可以在网上搜索一些Java编程基础测试题,或者向周围有经验者拿一些推荐的Java编程基础测试题 将测…

    C 2023年5月23日
    00
  • C语言使用链表实现学生信息管理系统

    C语言使用链表实现学生信息管理系统 概述 本文将介绍如何使用链表实现学生信息管理系统。该系统能够录入学生信息,查询学生信息,修改学生信息,删除学生信息,并且能够进行数据保存和读取。在实现过程中,我们将使用C语言来编写整个系统。 实现步骤 1. 定义结构体 首先,我们需要定义一个结构体,用来保存学生的各种信息,如下所示: struct Student { in…

    C 2023年5月23日
    00
  • json.stringify()与json.parse()的区别以及用处

    JSON在现代Web应用程序开发过程中扮演着非常重要的角色。它是一种数据格式,用来交换数据,而且被广泛使用。JS开发者通常需要将JS对象转换为JSON格式,然后将其发送到服务器或者持久性存储,JSON也会从服务器返回,然后被转换为JS对象。这个过程需要使用JSON.stringify()和JSON.parse()这两个方法来进行。 JSON.stringif…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部