How to pick a random value from a map in C++

1 Answer

0 votes
#include <iostream>
#include <vector>
#include <ctime> // time(0)
#include <map>

// Function to get a random value from a map
std::string getRandomValue(const std::map<int, std::string>& inputMap) {
    std::vector<std::string> values;
    
    for (const auto& pair : inputMap) {
        values.push_back(pair.second);
    }

    int randomIndex = std::rand() % values.size();
    
    return values[randomIndex];
}

int main() {
    // Initialize the map
    std::map<int, std::string> myMap = {
        {1, "C++"},
        {2, "C"},
        {3, "Java"},
        {4, "C#"},
        {5, "Rust"},
        {6, "Python"}
    };

    // Seed the random number generator
    std::srand(static_cast<unsigned int>(std::time(0)));

    std::string randomValue = getRandomValue(myMap);

    std::cout << "Random value: " << randomValue << std::endl;
}

  
  
/*
run:

Random value: C

*/

 



answered Jul 16, 2025 by avibootz

Related questions

1 answer 46 views
1 answer 79 views
1 answer 81 views
1 answer 78 views
1 answer 93 views
...