Q:

Write a C++ program which reads a list of pairs of a word and a page number, and prints the word and a list of the corresponding page numbers

0

Write a C++ program which reads a list of pairs of a word and a page number, and prints the word and a list of the corresponding page numbers

Sample Output:

Sample Input: Python 2
HTML  4
CSS    3
Python 5
Python 3
HTML  2
CSS   6
Output:
CSS
3 6
HTML
2 4
Python
2 3 5

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

#include <iostream>
using namespace std;
typedef pair<string, int> P;
  
int main()
{
    string str;
    int page, ctr = 0;
    vector<P> v_data;
  
    while (cin >> str >> page) {
    v_data.push_back(P(str, page));
    ctr++;
    }
  
    sort(v_data.begin(), v_data.end());
    for (int i = 0; i < ctr; i++) {
    if (i == 0) {
        cout << v_data[i].first << endl;
        cout << v_data[i].second;
        continue;
    }
  
    if (v_data[i].first == v_data[i-1].first && v_data[i].second!=v_data[i-1].second) {
        cout << ' ' << v_data[i].second;
        continue;
    } else {
            cout << endl;
        }
    cout << v_data[i].first << endl;
    cout << v_data[i].second;
    }
    puts("");
    return 0;
}

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

Similar questions


need a help?


find thousands of online teachers now