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日

相关文章

  • 基于Matlab实现数字音频分析处理系统

    基于Matlab实现数字音频分析处理系统攻略 目录 背景简介 实现步骤 示例说明1:音频文件的读取和播放 示例说明2:音频信号的时域和频域分析 背景简介 数字音频处理是数字信号处理领域的一个重要方向,它主要涉及到音频信号的获取、存储、处理和播放等方面。为了更好地完成数字音频处理任务,基于Matlab的数字音频分析处理系统应运而生。该系统不仅可以实现音频文件的…

    C 2023年5月23日
    00
  • windows 下C++生成Dump调试文件与分析

    下面是关于windows下C++生成Dump调试文件与分析的完整攻略: 生成Dump文件 一、在Visual Studio中生成Dump文件: 编译需要生成Dump文件的工程。在Visual Studio的“解决方案资源管理器”窗口中,选择需要生成Dump文件的工程,右键点击选择“属性”选项。 在弹出的“属性页”中选择“配置属性->调试”选项,勾选“生…

    C 2023年5月23日
    00
  • Shell在日常工作中的应用实践

    作者:京东物流 李光新 1 Shell可以帮我们做什么 作为一名测试开发工程师,在与linux服务器交互过程中,大都遇到过以下这些问题: •一次申请多台服务器,多台服务器需要安装相同软件,配置相同的环境,同样的操作需要重复多次; •工作中经常会使用命令行命令来完成我们的一些操作,但是有些命令使用率很高,而且很长,每次都全部敲进去势必会浪费很多时间(比如查日志…

    C语言 2023年4月22日
    00
  • C++使用宏函数实现单例模板详解

    下面就为你详细讲解“C++使用宏函数实现单例模板详解”的完整攻略。 1. 单例模式简介 单例模式是一种创建型设计模式,它确保某个类只有一个实例,并提供一个全局访问点,使得该实例能够被访问。单例模式在很多场景下都有非常重要的作用,例如线程池、配置文件读取等。 2. 使用宏函数实现单例模板 C++中使用宏函数可以方便地实现单例模板。具体实现步骤如下: 定义一个模…

    C 2023年5月23日
    00
  • 解读C语言非void函数却没有return会怎么样

    解读C语言非void函数却没有return会怎么样: 当一个C语言函数声明为非void类型时,我们期望它返回一个值,但如果没有在函数内部使用return关键字,则可能会导致以下问题: 函数返回值不确定 在非void函数没有return语句时,函数返回值不确定,编译器会尝试返回一个随机值或者未初始化的值,这可能会导致程序运行时无法预期的行为。例如,在以下代码中…

    C 2023年5月23日
    00
  • c语言程序设计文件操作方法示例(CreateFile和fopen)

    “C语言程序设计文件操作方法示例(CreateFile和fopen)”是关于如何在C语言中使用CreateFile和fopen函数进行文件操作的攻略。下面将分别介绍CreateFile和fopen函数的使用方法,并提供两个示例说明。 CreateFile函数的使用方法 CreateFile函数是Windows操作系统中的一个API函数,用于创建或打开文件。其…

    C 2023年5月23日
    00
  • Scala异常处理的方法深入分析

    Scala异常处理的方法深入分析 在Scala编程中,异常处理是一个很重要的概念。Scala提供了很多方式来处理异常,包括try-catch语句、抛出异常、Option等。本文将深入分析Scala异常处理的方法,并提供两个示例来说明这些方法的使用。 try-catch语句 try-catch语句是最基本的Scala异常处理方式。使用try-catch语句,我…

    C 2023年5月23日
    00
  • Python实现打砖块小游戏代码实例

    Python实现打砖块小游戏代码实例 1. 简介 本文将介绍如何使用Python编写一个简单的打砖块小游戏代码,该代码使用Pygame库实现。 2. 环境搭建 在开始编写代码之前,我们需要安装Pygame库。这可以通过以下命令在终端中执行来安装: pip install pygame 3. 初始化 我们首先需要导入所需的库和模块,例如: import sys…

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