【OI】C++STL 不定长数组 vector

Vector 本来是向量的意思,只不过在用法上类似于一个不限长度的数组。

定义语法:vector<数据类型> 名称;

一、头文件:<vector>  (bits/stdc++请忽略)

二、常用方法:

  a.size();  //读取大小

  a.resize():  //改变大小

  a.push_back();  //向尾部添加元素

  a.pop_back();  //删除最后一个元素

  a.clear();  //清空

  a.empty():  //返回是否为空

三、遍历

  STL的数据类型几乎(也许是全部)使用迭代器遍历。

  vector<int>::iterator it = a.begin();  //创建一个vector类型的迭代器(类似于指针)指向a的首地址

  在for中写就是:

  for (vector<int>::iterator it = a.begin(); it != a.end();it++)

  然后就可以使用*it来访问指向的地址的值了。

四、其他

  插入元素:    vec.insert(vec.begin()+i,a);  在第i+1个元素前面插入a;  (也就是说这个a就是i+1的位置)
  删除元素:    vec.erase(vec.begin()+2);  删除第3个元素
  vec.erase(vec.begin()+i,vec.end()+j);  删除区间[i,j-1];区间从0开始  (这个争议比较大,保留疑惑,正常不用)

待补充…………

原文地址:https://www.cnblogs.com/nowonder/p/STL_VECTOR.html

时间: 2024-10-27 21:28:05

【OI】C++STL 不定长数组 vector的相关文章

不定长数组:vector

vector就是一个不定长数组,另外它把一些常用操作"封装"在了vector类型内部.例如,若a是一个vector,可以用a.size()读取它的大小,a.resize()改变大小,a.push_back()向尾部添加元素,a.pop_back()删除最后一个元素,clear()清空,empty测试是否为空. vector是一个模板类,所以需要用vector<int> a或者vector<double> b这样的方式来声明一个vector.vector<i

(STL初步)不定长数组:vector

STL是指C++的标准模板库.(存储着一些常用的算法和容器) vector是一个不定长数组.它把一些常用的操作"封装"在vector类型内部. 例如,a是一个vector.1对元素的操作有,可以用a.size()读取它的大小,a.resize()改变它的大小,a.push_back()向尾部添加元素,a.pop_back()删除最后一个元素.2对数组的操作有:a.clear()清空,a.empty()测试是否为空. vectors是一个模板类. 它的使用声明:vetor<int&

STL map vector(不定长数组)

啊啊啊!记住啊   多看几遍应该就好. 1 #include<cstdio> 2 #include<iostream> 3 #include<string> 4 #include<cctype>//1.测试字符ctype.h是C标准函数库中的头文件,定义了一批C语言字符分类函数(C character classification functions),用于测试字符是否属于特定的字符类别,如字母字符.控制字符等等.既支持单字节字符,也支持宽字符. 5 #in

C语言格式化输入不定长数组

先随便写写,有空再整理. 直接贴代码 #include <stdio.h> #include <stdlib.h> //从一行标准输入中格式化输入一个不定长数组 void inputVec (); //读入给定行数的不定长数组 void inputVecs1 (); //读入不确定行数不定长数组 void inputVecs2 (); void main () { inputVecs1 (); return; } void inputVecs1 () { while (!feof(

【STL初步】不定长数组:vector + 集合:set + 映射:map

一.vector 为了节省空间,有时我们会使用动态数组vector. 定义动态数组 vector<类型名>变量名 vector<int>que //定义que为一个int类型的动态数组 vector<char> a //定义 a 为一个char 类型的动态数组 vector<data> c //其中data为自定义的数据类型,可以为结构体  指令 a[i] ---- 返回动态数组中的第i个元素a.empty() ---  若动态数组为空,则返回true,否则

STL之Vector(不定长数组)

vector是同一种对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库将负责管理与存储元素相关的类存.引入头文件 #include<vector> 1.vector对象的定义和初始化 vector<T> v1 vector保存类型为T的对象.默认构造函数,v1为空 vector<T> v2(v1) v2是v1的一个副本 vector<T> v3(n,i) v3包含n个值为i的元素 vector<T> v4(n) v4含有

论STL的动态数组vector的基本应用

STL,就是c++的标准数据库,今天要讲的就是附属与它的vector的基本应用. 个人来说,我认为这个东东基本上没有什么用,但是总归得看懂吧... 这是一个动态的数组,可以随时定义它的大小(长度) 除了用万能头文件(bits/stdc++.h)的人,其它都要加上#include<vector>,如果只用BITS时报错,那就把这个加上吧. 定义位置:和定义普通数组一样. 定义方法:vector<数组类型名>数组名: 如果想定义多维数组,可以:vector<vector<数

不定长数组取值交叉遍历组合生成算法

代码例如以下: #include <stdio.h> int factor[3][4] = { {0, 1, 2, 3}, {0, 1}, {0, 1, 2}, }; int lengths[3] = {4, 2, 3}; void recurisionAccess(int factor[3][4], int lengths[3], int colum, int row) { int i = 0; int j = 0; int k = 0; int len = 0; int len_num =

java二维不定长数组测试

package foxe; import javax.swing.JEditorPane;import javax.swing.JFrame; /** * @author fooxe * * @see:Test.java * * */public class Test extends JFrame { private String arr[][] = null; private String str[][] = { { "Aa", "Ab", "Ac&qu