C++ STL----Vector(自己的小整理)

一、简要概述

简单来说vector是一个不定长数组。就是不用给予初始长度,可以不断添加新值。

二、初始化

1)头文件:#include<vector>
2)变量声明:
1.vector<类型名称>变量名 例如vector<int>a即声明一个为int类型的vector 变量名为a
2.vector<int> a(3,1); 定义了3个整型元素的向量,且给出每个元素的初值为1
3.vector<int> a(b); 用b向量来创建a向量,整体复制性赋值
4.vector<int> a(b.begin(),b.begin+3); 定义了a值为b中第0个到第2个(共3个)元素
5.int b[7]={1,2,3,4,5,9,8};vector<int> a(b,b+7); 从数组中获得初值
6.Vector< vector< int> >v; 二维向量//这里最外的<>要有空格。否则在比较旧的编译器下无法通过

三、方法

1)常用

a. a.push_back(5); 在a的最后一个向量后插入一个元素,其值为5
b. a.pop_back(); 删除a向量的最后一个元素
c. a.size(); 返回a中元素的个数
d. a.empty(); 判断a是否为空,空则返回ture,不空则返回false
e. a.clear(); 清空a中的元素
f. a.swap(b); b为向量,将a中的元素和b中的元素进行整体性交换

2)扩展

a.排序从小到大
sort(a.begin(),a.end());
b.排序从大到小
reverse(a.begin(),a.end());
c.利用迭代器遍历vector
vector<int>::iterator it;
声明一个迭代器,来访问vector容器,作用:遍历或者指向vector容器的元素
for(it=a.begin();it!=a.end();it++){ cout<<*it<<" ";}
或者利用auto声明
for (auto it = v.rbegin(); it != v.rend(); it++) cout << *it;
d. 在a的第1个元素(从第0个算起)的位置插入数值5,如a为1,2,3,4,插入元素后为1,5,2,3,4
a.insert(a.begin()+1,5);
e. 在a的第1个元素(从第0个算起)的位置插入3个数,其值都为5
(a.insert(a.begin()+1,3,5);

猜你喜欢

转载自blog.csdn.net/weixin_44916213/article/details/111755677