一.动态数组vector 语句:vector<T>vec;即名为vec的存储T类型数据的动态数组。
其中T类型可为int,float,double等。
初始vec为空,比如vector<int>a即定义了一个存储整数的动态数组a。
算法库:#include<vector>
二.vector方法总结:
插入元素:通过push_back()在数组尾部插入一个新的元素。在末尾加入一个元素。 |
获取长度并访问元素:vec.size( )//vec自定义名 v[i]访问同数组。获取长度 |
修改元素:直接赋值即可。如vec[1]=4; |
删除元素:只能在尾部通过pop_back()方法删除动态数组的最后一个元素。在末尾弹出一个元素。 |
清空:直接调用clear()即可清空,但不会释放内存。用vector<int>().swap(v);可清空内存。清空 |
#include<iostream>
#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]
for(int i=0;i<a.size();i++)//获取长度
{
cout<<a[i]<<" ";//访问元素
}
cout<<endl;
a[1]=4;//[1,4,3]修改元素
for(int i=0;i<a.size();i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
a.pop_back();//[1,3]删除元素
a.pop_back();//[1]
for(int i=0;i<a.size();i++)
{
cout<<a[i]<<" ";
}
return 0;
}
例题1.初始化
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int>v;
for(int i=0;i<10;i++)
{
v.push_back(1);//将数组都初始化成1
}
//还可以使用构造函数的方法进行初始化
//int n=10;
//vector<int>vec(n,1);即可省略for循环的方法
for(int i=0;i<10;i++)
{
cout<<v[i]<<" ";
}
return 0;
}
三.二维动态数组vector<vector<int> >vec2;
二维动态数组初始化:vector<vector<int> >vec2(n,vector<int>(m,0))
开n个vector,每个vector初始化为0.即构造出一个n行m的动态数组
例题2:打印乘法表
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<vector<int> >a;
for(int i=0;i<5;i++)
{
a.push_back(vector<int>());
}
for(int i=0;i<=a.size();i++)
{
for(int j=0;j<=i;j++)
{
a[i].push_back((i+1)*(j+1));
}
}
for(int i=0;i<=a.size();i++)//装几个vector
{
for(int j=0;j<a[i].size();j++)//每个vector的长度
{
cout<<i+1<<" * "<<j+1<<"="<<a[i][j]<<"\t";
}
cout<<endl;
}
return 0;
}