6.1vector用法

目录

一、用法介绍

二、基本用法

三、PAT A1039


一、用法介绍

vector<typename>name;

按照这样的格式进行定义与书写。

注意定义成双数组的情况要加上空格。

vector<int> vi[100];

vector的用法和数组是一样的,可以直接用下标进行访问。

也可以用迭代器进行访问it相当于指针

vector<typename>::iterator it;
*(it+i)等价于vi[i];

二、基本用法

vi.push_back(i);

vi.pop_back();

vi.size();

vi.clear();

vi.insert(it,x);

vi.erase(it);

vi.erase(first,last);  左闭右开

三、PAT A1039

#include<cstdio>
#include<vector>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=26*26*26*10;        //注意这个大小
vector <int> a[maxn];

int hash_id(char name[])
{
    int id=0;
    for(int i=0;i<3;i++)
    {
        id=id*26+(name[i]-'A');
    }
    id=id*10+(name[3]-'0');
    return id;
}


int main()
{
    int N,K;        //N为总学生数,K为课程的数目
    int course_id=0,stu_num=0;
    char name[5];
    int id=0;
    scanf("%d %d",&N,&K);
    for(int i=0;i<K;i++)
    {
        scanf("%d %d",&course_id,&stu_num);
        for(int j=0;j<stu_num;j++)
        {
            scanf("%s",name);
            id=hash_id(name);
            a[id].push_back(course_id);
        }
    }
    for(int i=0;i<N;i++)
    {
      scanf("%s",name);
      id=hash_id(name);
      sort(a[id].begin(),a[id].end());
      printf("%s %d",name,a[id].size());
      for(int j=0;j<a[id].size();j++)
      {
          printf(" %d",a[id][j]);
      }
      printf("\n");
    }
    return 0;
    
}
发布了24 篇原创文章 · 获赞 6 · 访问量 468

猜你喜欢

转载自blog.csdn.net/qq_39965800/article/details/100902086
今日推荐