详解C++编程中的vector类容器用法

详解C++编程中的vector类容器用法

简介

在 C++ 中,vector 是一个非常实用的容器类,它可以动态调整大小并提供了一系列方便的操作函数。在本文中,我们将详细介绍 vector 类的使用方法,以便能够更好地应用 vector 容器类进行 C++ 编程。

如何使用 vector

首先需要在头文件中包含 vector

#include<vector>

然后可以定义一个 vector 对象:

std::vector<int> myVec;

其中的 <int> 表示这是一个整型的 vector 对象。创建好对象后就可以使用 vector 类的各种函数和属性了。

常用函数

添加元素

vector 容器可以便捷地添加元素,可以在末尾添加一个元素,也可以在任何一个位置插入一个元素。以下是常见的添加元素的函数:

  • push_back():在容器尾部插入一个元素。
  • emplace_back():在容器尾部插入一个元素,它比 push_back() 函数更快,因为它直接在容器内创建对象。
  • insert():在指定位置插入一个元素。

示例代码:

std::vector<int> myVec;
myVec.push_back(1); // 在末尾增加元素
myVec.emplace_back(2); // 在末尾增加元素(更快)
myVec.insert(myVec.begin() + 1, 3); // 在第二个位置插入元素

访问元素

可以用下标的方式或迭代器的方式访问元素,以下是常见的访问元素的函数:

  • []:通过下标访问元素。
  • at():通过下标访问元素,但可以检查边界错误。
  • front():返回容器中的第一个元素。
  • back():返回容器中的最后一个元素。

示例代码:

std::vector<int> myVec{1, 2, 3};
int x = myVec[1]; // 取得第二个元素
int y = myVec.at(2); // 取得第三个元素
int z = myVec.front(); // 取得第一个元素
int w = myVec.back(); // 取得最后一个元素

删除元素

可以用下标的方式或迭代器的方式删除元素,以下是常见的删除元素的函数:

  • erase():删除指定的元素。
  • clear():删除容器的所有元素。

示例代码:

std::vector<int> myVec{1, 2, 3};
myVec.erase(myVec.begin() + 1); // 删除第二个元素
myVec.clear(); // 删除所有元素

示例

示例 1:用 vector 实现栈

#include <iostream>
#include <vector>

class Stack {
public:
    Stack() = default;
    void push(int n) { data_.emplace_back(n); }
    void pop() { data_.pop_back(); }
    int top() const { return data_.back(); }
    bool empty() const { return data_.empty(); }
private:
    std::vector<int> data_;
};

int main() {
    Stack stk;
    stk.push(1);
    stk.push(2);
    std::cout << "Top: " << stk.top() << std::endl; // Top: 2
    stk.pop();
    std::cout << "Top: " << stk.top() << std::endl; // Top: 1
    stk.pop();
    std::cout << "Empty: " << stk.empty() << std::endl; // Empty: 1
    return 0;
}

示例 2:用 vector 实现队列

#include <iostream>
#include <vector>

class Queue {
public:
    Queue() = default;
    void push(int n) { data_.emplace_back(n); }
    void pop() { data_.erase(data_.begin()); }
    int front() const { return data_.front(); }
    bool empty() const { return data_.empty(); }
private:
    std::vector<int> data_;
};

int main() {
    Queue q;
    q.push(1);
    q.push(2);
    std::cout << "Front: " << q.front() << std::endl; // Front: 1
    q.pop();
    std::cout << "Front: " << q.front() << std::endl; // Front: 2
    q.pop();
    std::cout << "Empty: " << q.empty() << std::endl; // Empty: 1
    return 0;
}

总结

vector 容器类用于动态数组的管理,可以快速、方便地增加、删除、访问元素,是 C++ 编程中非常常用的容器类。我们在使用 vector 时需要注意边界情况,避免访问不存在的元素等错误。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解C++编程中的vector类容器用法 - Python技术站

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

相关文章

  • 关于在C程序中处理UTF-8文本的方法详解

    关于在C程序中处理UTF-8文本的方法详解 在处理UTF-8编码的文本时,我们需要使用一些特殊的方法,而不能像处理ASCII编码的文本那样简单。以下是在C程序中处理UTF-8文本的方法详解: 1. 了解UTF-8编码 要处理UTF-8编码的文本,首先需要了解UTF-8编码的原理。UTF-8是一种变长字符编码,每个字符的长度都不一定相同。在UTF-8编码中,如…

    C 2023年5月23日
    00
  • Go语言中JSON文件的读写操作

    让我为你详细讲解Go语言中JSON文件的读写操作的完整攻略。 什么是JSON? JSON(JavaScript Object Notation),是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。JSON与XML的区别,它是纯文本,更容易阅读,而且数据结构也很简单。在Web开发中,JSON数据是一种非常常见的数据格式。 Go语言中JS…

    C 2023年5月23日
    00
  • 汇编语言入门教程(这一篇足矣)

    《汇编语言入门教程(这一篇足矣)》是一篇介绍汇编语言基础知识的文章,适合初学者入门。下面我将按照文章的结构进行详细讲解。 一、前言 本文介绍汇编语言基础知识和相关工具的使用,重点讲解x86汇编语言。同时要求读者有一定的基础知识,建议了解计算机系统、数据结构和算法。本文主要内容包括汇编语言基本语法、寄存器和指令等。 二、汇编语言基础 本节主要讲解汇编语言的基本…

    C 2023年5月22日
    00
  • C语言实现简单的推箱子游戏

    C语言实现简单的推箱子游戏攻略 游戏规则 推箱子游戏是一款智力类游戏,玩家需要通过推动木箱到指定的位置来完成游戏,游戏难度逐渐增加。 游戏规则如下: 玩家可以通过键盘上的 ↑、↓、←、→ 控制人物(P)的移动,人物可以向四个方向行走; 如果人物面对着一个箱子(O),玩家按下操作键,木箱就会朝着人物所面对的方向移动一个格子; 箱子在游戏界面移动的过程中,必须始…

    C 2023年5月23日
    00
  • C++骑士游历问题(马踏棋盘)解析

    C++骑士游历问题(马踏棋盘)解析 简介 骑士游历问题,又称马踏棋盘问题,属于图论中的路径问题。问题描述:在一个 n*n 的棋盘上,放置一个马的棋子,从任意一个位置出发,按照马的走法,遍历所有的棋盘。不可重复经过。 解题思路 递归回溯法 定义 首先定义一个二维棋盘 board 存储马在棋盘上的路径。board[i][j]的值为k表示是第 k 步走到了位置 (…

    C 2023年5月23日
    00
  • 好玩又实用的查看函数图像网站Desmos

    漂亮好用的函数图像绘制工具Desmos,可以让用户轻松实现多种不同的任务,包括绘制平面图形、计算数值、函数绘图和数据可视化等。本文将以完整的攻略形式,为你详细讲解如何使用Desmos网站绘制、调整并分享函数图像。 一、注册Desmos账户 首先打开官方网站https://www.desmos.com,点击右上角的“Sign In”按钮,选择“Sign up”…

    C 2023年5月22日
    00
  • 用VC++6.0的控制台实现2048小游戏的程序

    实现2048小游戏的步骤如下: 步骤1:建立控制台项目 打开VC++6.0,从主菜单栏中选择”File -> New”。 在弹出的”New”窗口中选择”Win32 Console Application”,并输入工程名,点击”OK”。 在下一步中,选择”Empty Project”,然后点击”Finish”。 步骤2:编写主函数 打开main.cpp文…

    C 2023年5月23日
    00
  • 现代配置YAML对比JSON优势分析

    简介 本文将从以下几个方面来详细讲解“现代配置YAML对比JSON优势分析”: YAML和JSON的区别和优势; YAML在实际使用中的示例。 YAML和JSON的区别和优势 YAML和JSON都是现代配置中常用的数据序列化格式。它们具有以下区别和优势: YAML优势 对象比JSON更易读; 支持注释,更加可读性、可维护性; 支持多种数据类型(除了数字和字符…

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