PTA 1039 Course List for Student

Map, vector, iterator

https://pintia.cn/problem-sets/994805342720868352/problems/994805447855292416
use map<string, vector<int> >:: iterator it = mp.find(sname[i]); to return the element's iterator.

出现了vector的元素为0打印不出来 我就往里面塞了个-1 强行让它不等于零
不是vector的锅 是map里面我没加这个元素 元素还没创建
所以会runtime error
加个这个mp[sname[i]];
让它创建

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <vector>
#include <map>

using namespace std;

int main() {
    int N, K;

    scanf("%d %d", &N, &K);
    map<string, vector<int> > mp;

    //input courses
    for (int i = 0; i < K; i++) {
        int th, cnt;
        scanf("%d %d", &th, &cnt);

        for (int j = 0; j < cnt; j++) {
            string st;
            cin >> st;
            mp[st].push_back(th);
        }
    }

    vector<string> sname;
    //input student name 
    for (int i = 0; i < N; i++) {
        string st;
        cin >> st;
        sname.push_back(st);
    }

    for (int i = 0; i < sname.size(); i++) {
        cout << sname[i];
        mp[sname[i]]; //让它非空
        map<string, vector<int> >:: iterator it = mp.find(sname[i]);

        vector<int> vec = it->second;
        printf(" %d", vec.size());

        sort(vec.begin(), vec.end());
        for (int j = 0; j < vec.size(); j++) {
            printf(" %d", vec[j]);
        }
        printf("\n");
    }
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Scala的集合类可以从三个维度进行切分: 可变与不可变集合(Immutable and mutable coll...
    时待吾阅读 5,862评论 0 4
  • 转载自:Java集合框架实例 1- 介绍 集合是程序和语言的基本思想。应用程序通常都会应用到集合,例如雇员的信息,...
    01_小小鱼_01阅读 423评论 0 1
  • 本来一篇高大上的晨读,标题一打出,让我恍惚间仿若小学生附体。 不如让本小学生趁着人少城市静的清晨,略微数一下我的目...
    米粥的江湖阅读 271评论 7 5
  • 这是最近刷屏的具有温度的新闻。虽然孩子头上顶着凝结的冰霜,但是好心的老师拍照,好心的网友点赞,好心的团体或个人募捐...
    竹间字阅读 169评论 0 1