vector
1 包含头文件
#include <vector>
2 定义vector对象
直接定义
vector<int>a;
vector<int>a(10);//定义a内有10个元素,但是值不确定
vector<int>a(19,1);//定义a里面有19个为1的元素
借助数组定义
int b[4]={1,2,3,4};
vector<int>a(b,b+4);//此时a内含有1,2,3,4四个元素b+n中的n可任意
3 添加元素
for (int i=1; i<=4; i++) {
a.push_back(i);//push_back(x),向a中添加x到结尾
}
a.assign(b, b+4);//用b去为a进行赋值
4 读取元素
a.back();//返回a的第一个元素
a.front();//返回a的最后一个元素
a[i];//读取a的第i个元素
a.size();//读取a的大小
5 对vector进行操作
a.pop_back();//删除a中的最后一个元素
a.erase(a.begin()+num);//删除a[num]
a.clear();//清空列表
a.empty();//判断a是否为空
a.insert(a.begin()+1, 5);//将a[1]处插入5
a.insert(a.begin(),3,5);//在a[0]处插入三个数,都为5
a.resize(10,2);//将a的大小扩大到10,不足的部分用2去补
看一道题目出门右转
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int>a;
int n,m;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
a.push_back(i);
}
int num;
while (a.size()) {
--num;
num%=a.size();
printf("%d ",a[num]);
a.erase(a.begin()+num);
num+=m;
}
return 0;
}