首页 > 其他分享 >STL库之动态数组vector基本使用方法

STL库之动态数组vector基本使用方法

时间:2022-12-25 18:32:41浏览次数:38  
标签:STL 元素 back C++ 数组名 vector 数组 push

前言:

有些时候想开一个数组,但是不知道开多大长度的数组合适,因为我们要用到的数组可能会根据情况变得变动。这时候我们就要用到动态数组。所谓动态数组,也就是不定长数组,数组的长度是可以根据我们的需要动态改变的。动态数组的实现也不难,但是在C++里面已经有写好的标准模板库,就是我们常说的STL库,实现了集合、映射、栈、队列等数据结构和排序、查找等算法。我们可以很方便的调用我们的标准库来减少我们的代码量。

C++动态数组写作vector,C语言中没有标准库,所以在蓝桥杯参赛时建议使用C++的原因!


引用库

C++中vector的实现在一个<vector>头文件中,在代码开头引入这个头文件,并在引入所有头文件之后加上一句ueing namespace std。

STL库之动态数组vector基本使用方法_stdl


构造一个动态数组

C++中直接构造一个Vector的语句是:vector<T>vec 这样我们定义了一个名为vec的存储T类型的动态数组。

数组名是vec,存储数据类型是T

例如vector<int>a;表示定义了整型变量数组名为T的动态数组!


插入元素

C++中通过push_back()方法在数组最后面插入一个新的元素。

注意要用数组名去引线!

括号里面的数就是新的元素,且从数组最后一个元素插入

#include<vector>
using namespace std;

int main()
{
vector<int> a;//[]
a.push_back(1);//[1]
a.push_back(2);//[1,2]
a.push_back(3);//[1,2,3]
return 0;
}


获取长度并且访问元素

直接size()即为访问元素,注意也要用数组名去引线!

打印元素时跟正常数组一样直接数组名[]  不要加   .   !

#include<vector>
using namespace std;

int main()
{
vector<int> a;//[]
a.push_back(1);//[1]
a.push_back(2);//[1,2]
a.push_back(4);//[1,2,4]
for (int i=0;i<a.size(); i++)
{
cout << a[i] << ' ';
}
return 0;
}

输出结果:

STL库之动态数组vector基本使用方法_vector_02


修改元素

跟正常修改数组中的某一位元素一样

且动态数组的下标也是从0开始,修改数组中的某一位元素的前提就是他的下标是合法的。

STL库之动态数组vector基本使用方法_stdl_03

输出结果就是1 1 1

删除元素

C++通过pop_back()来实现

使用方法和插入元素push_back()用法相同(要用数组名作为引言)

并且都是从最后一个元素开始删除

STL库之动态数组vector基本使用方法_vector_04

输出结果就是1 1,删除了一个


清空元素

使用clear()函数即为清空函数,

也是数组名进行引线!


总结

数组名.push_back(1) 表示创建动态数组元素,从头开始

数组名.pop_back() 表示删除动态数组的最后一个元素

两者区别在于创建元素时括号内声明创建的第一个元素的值到底是什么!

而pop_back()括号内什么也不不写,因为是删除最后一个元素。

STL库之动态数组vector基本使用方法_vector_05


标签:STL,元素,back,C++,数组名,vector,数组,push
From: https://blog.51cto.com/u_15740457/5968238

相关文章

  • 力扣2145. 统计隐藏数组数目
    给你一个下标从0 开始且长度为n 的整数数组 differences ,它表示一个长度为 n+1 的 隐藏 数组 相邻 元素之间的 差值 。更正式的表述为:我们将隐藏数组记作......
  • 树状数组
    title:树状数组tags:算法date:2022-11-2813:36:11本文章遵守知识共享协议CC-BY-NC-SA,转载时须在文章的任一位置附上原文链接和作者署名(rickyxrc)。推荐在我的个人......
  • JavaScrip基础(三):数组
    索引数组内存中连续存储多个数据的数据结构创建创建空数组1.vararr=[];2.vararr=newArray();创建包含元素的数组vararr2=[97,85,79];vararr3=newArray("Tom......
  • 如何使用JavaScript对数字数组进行排序?
    英文| https://www.geeksforgeeks.org/how-to-sort-numeric-array-using-javascript/翻译|web前端开发(ID:web_qdkf)所述的JavaScript的Array.sort()方法被用来就地数组元......
  • 15个必须知道的JavaScript数组方法
    原文| https://www.ibrahima-ndaw.com/blog/15-must-known-javascript-array-methods-in-2020/译文|杨小二在JavaScript中,数组是一个特殊的变量,用于存储不同的元素。它......
  • 448. 找到所有数组中消失的数字
    找到所有数组中消失的数字给你一个含n个整数的数组nums,其中nums[i]在区间[1,n]内。请你找出所有在[1,n]范围内但没有出现在nums中的数字,并以数组的形式返......
  • ECMAScript 6 入门教程—数组的扩展
    作者|阮一峰1、扩展运算符含义扩展运算符(spread)是三个点(​​...​​)。它好比rest参数的逆运算,将一个数组转为用逗号分隔的参数序列。console.log(...[1,2,3])//123......
  • JSTL的练习以及三层架构
    JSTL的练习需求:在request域中有一个村有User对象的List集合,需要使用jstl+el将list集合数据展示到jsp页面的表格table中<%@pageimport="java.util.List"%><%@pagei......
  • Go 快速入门指南 - 数组
    概述​​数组​​​ 是具有相同数据类型的一组长度固定的数据项序列,分配在连续的内存地址上。其中数据类型可以是整型、布尔型等基础数据类型,也可以是自定义数据类型。 ​......
  • STL容器——string
    1.string容器本质:string是C++风格的字符串,但是string本质是一个类,string字符串的第一个字符位置为0。区别string和char*:char*是一个指针。string是一个类,类内有char*,有......