STL(八)——向量vector

向量Vector

vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。
简单理解为:向量Vector是一个能够存放任意类型的动态数组,可以动态改变大小。

常见形式为:vector<datatype> v
(尖括号中为元素类型名,它可以是任何合法的数据类型)

1.初始化

  1. vector a(10); //定义了10个整型元素的向量,没有给出初值,其值是不确定的。
  2. vector a(10,1); //定义了10个整型元素的向量,且给出每个元素的初值为1
  3. vector a(b); //用b向量来创建a向量,整体复制性赋值
  4. vector a(b.begin(),b.begin+3); //定义了a值为b中第0个到第2个(共3个)元素
  5. int b[7]={1,2,3,4,5,9,8};
    vector a(b,b+7); //从数组中获得初值

2.vector的一些操作:

vector<T>v1;

  • 判空: v1.empty(); //如果为空返回true,不为空返回false。

  • 返回元素个数: v1.size();

  • 插入元素: v1.push_back(t); //在v1的最后一个元素后新增一个类型为t的元素。

  • 向量间赋值: v1=v2; //把v2元素赋值给v1。

  • 判断等值: v1==v2; //判断v1中元素的值是否等于v2,是就返回true。

3.算法

(1)sort(a.begin(),a.end());
//对a中的从a.begin()(包括它)到a.end()(不包括它)的元素进行从小到大排列

(2)reverse(a.begin(),a.end());
//对a中的从a.begin()(包括它)到a.end()(不包括它)的元素倒置,但不排列,如a中元素为1,3,2,4,倒置后为4,2,3,1

(3)copy(a.begin(),a.end(),b.begin()+1);
//把a中的从a.begin()(包括它)到a.end()(不包括它)的元素复制到b中,从b.begin()+1的位置(包括它)开始复制,覆盖掉原有元素

(4)find(a.begin(),a.end(),10);
//在a中的从a.begin()(包括它)到a.end()(不包括它)的元素中查找10,若存在返回其在向量中的位置

4.输入输出

A.元素的输入和访问可以像操作普通的数组那样, 用cin>>进行输入,cout<<a[n]进行输出

#include<bits/stdc++.h>
using namespace std ;
int main() { 
  vector<int> a(3, 0) ;      //大小为3初值为0的向量a

  cin >>a[2] ;

  for (int i = 0; i < a.size(); i++)
    cout << a[i] << " " ;
  }

B.也可以用迭代器进行输出

#include<bits/stdc++.h>
using namespace std ;
int main() { 
  vector<int> a(3, 0) ;      //大小为3初值为0的向量a

  cin >>a[2] ;
  vector<int>::iterator it;
  for (it = a.begin(); it != a.end(); it++)
    cout << *it;
  }
    原文作者:你脸上有BUG
    原文地址: https://blog.csdn.net/qq_29493173/article/details/108405513
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞