初识C++ Vector模板与实例化原理

初识C++ Vector模板与实例化原理

什么是Vector模板

Vector是C++ STL库提供的一种数据结构,是动态数组的一个实现。它可以在运行时动态调整容器大小,并且可以快速随机访问元素。

在C++里,vector是一个模板类,可以存储任意类型的元素。

vector模板的实例化

Vector是一个模板,需要在使用前被实例化,并且实例化时需要指定数据类型,例如:

vector<int> vecInt;    // 实例化一个空的int类型的vector
vector<string> vecStr; // 实例化一个空的string类型的vector

Vector模板的基本操作

插入和删除元素

vecInt.push_back(3);     // 在vector尾部插入元素3
vecInt.insert(0, 2);     // 在vector下标0插入元素2
vecInt.pop_back();       // 删除vector尾部元素
vecInt.erase(0);         // 删除vector下标0的元素

访问元素

int num = vecInt[0];     // 访问下标0的元素
int size = vecInt.size(); // 返回vector包含元素的数量

迭代器操作

vector<int>::iterator itor = vecInt.begin(); // 返回vector的起始迭代器
vector<int>::iterator itorEnd = vecInt.end(); // 返回vector的终止迭代器

for(itor;itor!=itorEnd;itor++) //遍历整个vector
{
    cout<<*itor<<endl;
}

int num2 = *(vecInt.begin() + 2); // 通过迭代器访问vector中的元素

示例1:使用Vector模板实现斐波那契数列

vector<int> Fibonacci;
Fibonacci.push_back(0);
Fibonacci.push_back(1);
for (int i = 2; i < 10; i++)
{
   Fibonacci.push_back(Fibonacci[i - 1] + Fibonacci[i - 2]);
}

示例2:使用Vector模板实现字符串逆序

string str = "hello world";
vector<char> vecStr(str.begin(), str.end());
reverse(vecStr.begin(), vecStr.end());
string result(vecStr.begin(), vecStr.end());
cout<<result<<endl;

以上就是初识C++ Vector模板与实例化原理的攻略,希望可以帮助大家更好地应用Vector模板。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:初识C++ Vector模板与实例化原理 - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • 微信小程序App生命周期详解

    微信小程序App生命周期详解 前言 当我们开发微信小程序时,了解小程序的生命周期会对我们的开发、调试以及项目的性能优化有很大的帮助。因此,本篇文章将详细讲解微信小程序App生命周期。 在小程序中,App() 函数定义了小程序的入口,并且会在小程序初始化时被调用一次,即小程序启动时。此刻,小程序的生命周期被拉开。 生命周期 在微信小程序开发中,App() 生命…

    other 2023年6月27日
    00
  • 修改jar包package目录结构操作方法

    修改jar包package目录结构操作方法一般需要进行以下步骤: 将jar包解压,可以使用例如winrar等压缩软件进行解压,将jar包中的所有文件解压到一个单独的文件夹中。 找到需要修改的包目录,将目录和其中的类文件复制到新的包路径中。例如,若需要将com.example.original包中的所有类移动到com.example.new包中,需要在解压出的…

    other 2023年6月26日
    00
  • Win11 22H2 Build 22621.675更新补丁KB5019509 Release预览版发布(附完整更新日志)

    Win11 22H2 Build 22621.675 更新补丁 KB5019509 Release 预览版发布 更新概述 Win11 22H2 Build 22621.675 更新补丁 KB5019509 Release 预览版是针对 Windows 11 操作系统的最新更新补丁。该补丁旨在修复一些已知的问题,并提供性能改进和安全增强。本文将详细介绍该更新补…

    other 2023年8月3日
    00
  • Weex开发之WEEX-EROS开发踩坑(小结)

    Weex开发之WEEX-EROS开发踩坑(小结) 在Weex开发中,使用WEEX-EROS框架时可能会遇到一些问题和坑。以下是一些常见的问题和解决方法的小结: 问题: 在WEEX-EROS项目中,页面无法正常渲染。 解决方法: 检查页面的模板代码是否正确,包括标签闭合、属性命名等。 检查页面的样式代码是否正确,包括单位是否正确、样式属性是否支持等。 检查页面…

    other 2023年10月13日
    00
  • Spring Boot Gradle发布war到tomcat的方法示例

    让我来详细讲解一下“Spring Boot Gradle发布war到Tomcat的方法示例”的完整攻略: 准备工作 在开始发布war到Tomcat之前,我们需要做以下准备工作: 安装Tomcat服务器 在Gradle项目中添加Tomcat插件,并且配置Tomcat服务器的信息 添加Tomcat插件 在Gradle项目中,添加war和tomcat插件: plu…

    other 2023年6月26日
    00
  • ubuntu查看root密码

    Ubuntu查看root密码 在Ubuntu操作系统中默认情况下是没有开启root用户登录的,但是我们还是可以使用先前设置的用户密码以superuser的权限来运行指令。但在某些情况下,我们需要知道root用户的密码,比如在服务器环境下进行一些特殊操作,而这个时候就需要通过一些特殊的方式来查看root密码。本文将介绍在Ubuntu上查看root密码的两种方法…

    其他 2023年3月28日
    00
  • spring BeanProcessor接口详解

    Spring BeanProcessor接口详解 概述 Spring BeanProcessor接口是Spring容器提供的一个扩展点,它可以在Bean实例化、属性注入、初始化等环节进行干预操作,提供了非常灵活的扩展方式。 Spring中BeanProcessor接口的实现方式有很多,常见的有BeanPostProcessor、InstantiationAw…

    other 2023年6月27日
    00
  • QT利用QProcess获取计算机硬件信息

    下面是“QT利用QProcess获取计算机硬件信息”的完整攻略: 1.引言 我们在进行软件的开发时,有时需要获取计算机硬件信息。这时候我们可以使用QT框架提供的QProcess类来执行系统命令,获取相关信息。 2.步骤 步骤一:创建QProcess对象 我们需要创建一个QProcess对象,来执行相应的系统命令。 QProcess* process = ne…

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