vector
程序员文章站
2022-03-23 13:16:37
...
能够根据需要随时自动调整自身的大小以便容下所要放入的元素。
push_back(elem) // 在尾部加入一个数据。
pop_back() // 删除最后一个数据。
insert(pos,elem) // 在pos位置插入一个elem拷贝,传回新数据位置。
a.size() //获取向量中的元素个数
a.empty() //判断向量是否为空
a.clear() //清空向量中的元素
vector s[maxs]; 是一个二维的vector 这个后面可以有maxs个数组
比如 s[i][t]; 也可以这样获取 s[i].begin() s[j].end();
vector定义一个二维的数组:
vector <int> v[10010];
向数组里添加元素 v[x].push_back(i);
遍历元素
for(int i=1;i<=n;i++)
for(int j=0;j<v[i].size();j++)
cout<<v[i][j];
应用:
tts座位分配
int main()
{
int n;
cin>>n;
vector <int> v[10010];
int a[10010]; //记录每个学校队员数
int f[10010]; //记录是否坐满 1&0
for(int i=1;i<=n;i++)
{
cin>>a[i];
a[i]*=10;
}
int i=1;
int stu=0,sch=0;
while(1)
{
int x=1; //学校编号
while(x<=n)
{
if(v[x].size()<a[x])
{
stu++;
v[x].push_back(i);
if(sch==n-1) i+=2;
else i++;
}
if(!f[x]&&v[x].size()>=a[x])
{
f[x]=1;sch++;
}
x++;
}
if(sch==n) break;
}
for(int i=1;i<=n;i++)
{
cout<<"#"<<i<<endl;
for(int j=0;j<v[i].size();j++)
{
cout<<v[i][j];
if((j+1)%10==0)
{
cout<<endl;
continue;
}
if(j!=v[i].size()-1)
cout<<" ";
}
}
return 0;
}
上一篇: php反射方法有哪些
下一篇: 43. Multiply Strings