#include<bits/stdc++.h>
using namespace std;
vector<int> a(5,2);//定义一个初始长度为5,每个元素值为2的可变数组
vector<char> b(3);//定义一个初始长度为3,每个元素为默认值的可变数组
vector<int> v;//定义一个长度为0的可变数组v
int main(){
//依次给三个可变数组添加一个元素
a.push_back(18);//添加第六个元素a[5]
b.push_back('s');//b[3]
b.push_back('c');//b[4]
v.push_back(2);//v[0]
//(输入、输出和赋值)均支持随机访问
cout<<a[5]<<" "<<b[3]<<" "<<b[4]<<" "<<v[0]<<endl;
b[0]='a';
cout<<b[0]<<endl;
//获取长度的方式和string类一样
cout<<a.size()<<endl;
//调整长度
a.resize(10,8);//长度增加
for(int i=0;i<10;i++) cout<<a[i]<<" ";
cout<<endl;
a.resize(2);//长度缩短
for(int i=0;i<2;i++) cout<<a[i]<<" ";
return 0;
}
第一题
#include<bits/stdc++.h>
using namespace std;
vector<int> v(1);//v[0]不用
int n,m;
int main(){
cin>>n>>m;
while(n--){
int x;
cin>>x;//学号依次加入到可变数组v中
v.push_back(x);
}
while(m--)
{
int x;
cin>>x;//读取下标为x的(即第x个加入到动态数组的)学号
cout<<v[x]<<endl;
}
return 0;
}
第二题
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
vector<int> v[N];
vector< vector<int> > v(N);//定义N个空柜子,比如v[5]表示第5个柜子并且初始化的长度为0
int n,q;
int main(){
cin>>n>>q;
while(q--){
int op,i,j,k;
cin>>op>>i>>j;
if(op==1)//存放
{
cin>>k;
if(v[i].size()<j+1) //第i个柜子的格子数不够
v[i].resize(j+1);
v[i][j]=k;//利用随机访问的特性直接赋值
}
else{
cout<<v[i][j]<<endl;
}
}
return 0;
}