标准库类型的vector表示对象的集合,其中,所有的对象都有相同类型;(就是动态数组,扯那多呢?)
//必须包含的头文件:
#include<vector>
using namespace std;
1、定义与初始化对象
vector<string> s;//默认初始化,s中不包含任何元素;
//事实上,最常见的方式是先定义一个空的vector;
//然后当运行的时候获取到元素值就添加进去
vector<int>p;
//往里面添加一些值
vector<int> p1(p);
//把p的值复制给p1;
vector<int>p2=p;
2、列表初始化
vector<string> svec={"The","three","kingdoms"};
//使用‘=’进行列表初始化
//也可以将初始值都放在花括号里进行列表初始化
vector<string> v{"The","three","kingdoms"};
3、创建制定数量的元素
vector<int> v(10,-1);
//10个int元素,每个都初始化成-1;
vector<int> v(10);
//10个int元素,每个初始化为0(编译器默认初始值,一般为0);
vector<string> v(10,"hello");
//10个int元素,每个初始化为hello;
vector<string> v(10);
//10个string元素,每个都为空的string对象
4、创建二维数组
vector<vector<int>> arr(2,vector<int>(5));
//创建2行5列的二维数组,初值为0;
5、向vector中添加元素
push_back()负责把一个值当成vector对象的尾元素“push”到vector对象的“尾端back‘
vector<double> d;
double temp;
for(int i=1;i<=100;i++)
temp=i*i;
d.push_back(temp);
从标准库读取单词,存入vector中
string word;
vector<string> text;
while(cin>>word)
text.push_back(word);
6、vector的基本操作
v.empty();//检查是否为空
v.capacity();//返回当前vector中最大可以存储的数据容量
v.size();//返回v中元素的个数
v[n];//获取v中第n个元素;
7、使用迭代器
begin()成员负责返回指向第一个元素(或第一个字符)的迭代器;
end();成员负责返回指向容器(或string对象)的尾元素的下一个位置的迭代器。
8、例题
#include<iostream>
#include<vector>
#define max 100001
using namespace std;
int main()
{
int m,n;
vector<vector<int> > array;
vector<int> v;
cin>>m>>n;
int a[max];
int t=0;
for(int i=0;i<m;i++)
{
v.clear();
for(int j=0;j<n;j++)
{
cin>>t;
v.push_back(t);
}
array.push_back(v);
}
int q,k1,k2,k;
cin>>q;
for(k=0;k<q;k++)
{
cin>>k1>>k2;
a[k]=array[k1-1][k2-1];//注意不是array[k1][k2]
}
for(int p=0;p<q;p++)
{
cout<<a[p];
cout<<endl;
}
return 0;
}