#include 用法之我见

yizhihongxing

#include 用法之我见

作为一个C++程序员,在处理动态数组时,使用STL中的std::vector是一种比较常见的选择。在这篇文章中,我们将探讨<vector>头文件中vector的基本用法以及一些高级技巧。

概览

在使用std::vector之前,需要包含头文件<vector>.

#include <vector>

一个vector就像一个数组,但在很多方面比数组更加方便,因为它可以动态调整尺寸。 在vector上可以执行类似数组的操作,例如访问、遍历和排序。此外,还有一些独有的操作符和函数。

基本用法

创建一个vector

通常会使用vector的默认构造函数来创建新vector,如下所示:

std::vector<int> v; // 创建 int 类型的一个空vector

此时,v 是一个空的vector,尺寸为0。

向vector中添加元素

可以使用push_back函数将元素添加到vector中:

v.push_back(5); // 添加5到 vector 中

现在,v为:

[5]

可以多次使用push_back向vector添加更多元素。

访问vector中的元素

vector是通过下标进行访问的,与数组类似:

int x = v[0]; // 获取第一个元素

vector还提供了一个以类似于指针的方式访问元素的方法:

int y = *(v.begin()); // 获取第一个元素

遍历vector

可以使用for循环来遍历vector中的所有元素:

for (int i = 0; i < v.size(); ++i) {
  std::cout << v[i] << " "; // 打印v的每个元素
}

也可以使用迭代器来遍历vector:

for (auto it = v.begin(); it != v.end(); ++it) {
  std::cout << *it << " "; // 打印v的每个元素
}

删除vector中的元素

可以使用erase函数来删除vector中的元素:

v.erase(v.begin() + 1); // 移除 v 的第二个元素

清空vector

可以使用clear函数将vector清空:

v.clear(); // 清空v

高级技巧

判空

可以使用empty函数来判断vector是否为空:

if (v.empty()) {
  std::cout << "v为空" << std::endl;
}

vector的大小

可以使用size函数获取vector中元素的数量:

int n = v.size(); // 获取v中的元素个数

与其他vector的操作

可以使用+运算符将两个vector连接在一起:

std::vector<int> v1{1, 2, 3};
std::vector<int> v2{4, 5, 6};
std::vector<int> v3 = v1 + v2; // v3 是 [1, 2, 3, 4, 5, 6]

以多种方式初始化vector

可以有许多不同的方式初始化vector,例如:

使用默认值初始化 (对于对象而言):

std::vector<int> v1(10); // 创建一个长度为10的vector,每个元素都是默认的 int 类型值(即0)

使用重复值初始化:

std::vector<int> v2(10, 5); // 创建一个长度为10的vector,每个元素都是值为5的 int 类型

使用迭代器初始化:

int arr[] = {1, 2, 3, 4};
std::vector<int> v3(arr, arr + sizeof(arr) / sizeof(int)); // 使用数组arr中的数据初始化vector

结论

在本文中,我们探讨了C++ STL <vector> 的常见用法,包括基本用法和高级技巧。一旦攻克了这些用法,您就可以更有效地利用 vector 的优势来解决问题。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:#include 用法之我见 - Python技术站

(0)
上一篇 2023年3月28日
下一篇 2023年3月28日

相关文章

  • 在linux下怎么安装.bin的文件

    以下是“在Linux下安装.bin文件”的完整攻略: 在Linux下安装.bin文件 在Linux中,您可以使用.bin文件来安装软件。本攻略将介绍如何在Linux中安装文件。 步骤1:下载.bin文件 首先,您需要从件开发商的网站上下载.bin文件。请确保您下载的文件适用于您的发行版的。 以下是一个示例,说明如何从官方网站下载.bin文件: wget ht…

    other 2023年5月7日
    00
  • 基于Vue如何封装分页组件

    我可以为你详细讲解如何基于Vue封装一个分页组件。 在Vue中,我们可以通过以下的步骤来封装一个分页组件: 1. 创建分页组件所需要的数据和属性 我们需要定义组件所需的数据和属性,例如:当前页码、总页数、每页显示数量等。 <template> <div> <ul> <li v-for="page in pa…

    other 2023年6月25日
    00
  • 360路由器c301最新固件支持万能中继

    360路由器C301最新固件支持万能中继 最近我们的360路由器C301推出了最新的固件版本V1.2.0,其中最重要的更新是增加了万能中继功能。 什么是万能中继功能? 万能中继又称WDS(Wireless Distribution System),是一种无线中继技术。它允许一个无线路由器通过连接到另一个无线路由器的网络,将网络信号和数据通过WDS传输到其他设…

    其他 2023年3月28日
    00
  • WPF利用ValueConverter实现值转换器

    下面我来详细讲解“WPF利用ValueConverter实现值转换器”的完整攻略,并附带两个示例说明。 什么是WPF值转换器? 在WPF中,值转换器(Value Converter)是一种特殊的类,用于将一个值从一种类型转换为另一种类型。WPF值转换器通常与绑定(Binding)一起使用,使数据在UI界面中正确绑定数据源。 实现WPF值转换器的步骤 要实现W…

    other 2023年6月26日
    00
  • springboot中请求路径配置在配置文件中详解

    一、简述 在Spring Boot中,我们可以将请求路径配置在配置文件中,避免了硬编码带来的困扰,可以更加方便的修改和管理请求路径信息。本文将详细阐述Spring Boot中请求路径配置在配置文件中的全过程,包括如何在配置文件中配置请求路径,以及如何在控制器中使用配置的请求路径。 二、配置请求路径 在Spring Boot中,配置请求路径需要在applica…

    other 2023年6月25日
    00
  • 遗迹灰烬重生强力Build攻略 全武器、护甲与改装获取方法

    遗迹灰烬重生强力Build攻略 背景介绍 《遗迹:灰烬重生》是一款由 Perfect World 和 Miracle Games 开发的动作冒险类游戏,该游戏融合了RPG、动作、探险等元素,玩家可以在游戏中扮演一个古代遗迹的探险者,通过与各种各样的敌人战斗获取装备,不断提升自己的实力。 角色Build的重要性 在《遗迹:灰烬重生》的世界中,不同的武器、护甲、…

    other 2023年6月27日
    00
  • hdfs上传文件命令

    以下是“HDFS上传文件命令的完整攻略”的详细说明,包括过程中的两个示例说明。 HDFS上传文件命令的完整攻略 HDFS是Hadoop分布式文件系统,是Hadoop的核心组件之。在HDFS中,我们可以使用命令行工具来上传文件。以下是一份关于HDFS上传文件命令的完整攻略。 1. HDFS文件基础知识 在开始上传文件之前,我们需要掌握一些基础知识,例如: HD…

    other 2023年5月10日
    00
  • WIN11重置系统和重装有什么区别? win11重装系统对比重置系统介绍

    当你在使用Windows 11系统的时候,有时候会出现一些问题导致系统不稳定或者文件损坏,这时候我们需要对系统进行一些调整,以恢复它的正常运行。此时我们可以采用两种方法来解决问题:重置系统和重装系统。 重置系统 通过重置系统,我们可以重新设置系统,包括删除所有应用程序,文件和用户设置。然而,此操作并不会从计算机中删除操作系统及其相关文件。重置系统方法如下: …

    other 2023年6月20日
    00
合作推广
合作推广
分享本页
返回顶部