欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;
}