w3resource

C++ Exercises: Prints the word and a list of the corresponding page numbers

C++ Basic: Exercise-82 with Solution

Write a C++ program that 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 Solution:

C++ Code :

#include <iostream>
#include <vector>
#include <algorithm> // Required for sort()
using namespace std;

// Define a pair alias for string and int
typedef pair<string, int> P;

int main()
{
    string str;
    int page, ctr = 0;
    vector<P> v_data; // Vector of pairs to store string and int pairs

    // Input loop: Read string and integer pairs until the end of input
    while (cin >> str >> page) {
        v_data.push_back(P(str, page)); // Store the pair (string, int) in the vector
        ctr++;
    }

    // Sort the vector of pairs based on string (lexicographical order)
    sort(v_data.begin(), v_data.end());

    // Loop through the sorted vector of pairs
    for (int i = 0; i < ctr; i++) {
        if (i == 0) {
            cout << v_data[i].first << endl; // Print the first string
            cout << v_data[i].second; // Print the first associated integer
            continue;
        }

        // Check if the current string is the same as the previous string
        if (v_data[i].first == v_data[i - 1].first && v_data[i].second != v_data[i - 1].second) {
            cout << ' ' << v_data[i].second; // If the strings match but integers don't, print the current integer
            continue;
        } else {
            cout << endl; // Print a newline when the strings differ
        }

        cout << v_data[i].first << endl; // Print the current string
        cout << v_data[i].second; // Print the associated integer
    }

    puts(""); // Print a newline at the end
    return 0;
}

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

Flowchart:

Flowchart: Prints the word and a list of the corresponding page numbers

C++ Code Editor:

Previous: Write a C++ program to which replace all the words "dog" with "cat".
Next: Write a C++ program to convert a given number into hours and minutes. Separate the number of hours and minutes with a colon.

What is the difficulty level of this exercise?



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/cpp-exercises/basic/cpp-basic-exercise-82.php