How to Shuffle a List in C++


How to Shuffle a List in C++ ?

Answer

To shuffle a list in C++, you can use the std::shuffle method provided by the C++ standard library.



✐ Examples

1 Shuffle a List of Integers

In this example,

  1. We include the necessary headers: , , and .
  2. We create a list named numbers with integer values.
  3. We create a random number generator using std::default_random_engine.
  4. We call the std::shuffle function with the iterators of the list and the random number generator.
  5. The std::shuffle function randomly rearranges the elements in the list.
  6. Finally, we print the shuffled list to standard output.

C++ Program

#include <algorithm>
#include <random>
#include <list>
#include <iostream>

int main() {
    std::list<int> numbers = {1, 2, 3, 4, 5};
    std::vector<int> vec(numbers.begin(), numbers.end());
    std::random_device rd;
    std::default_random_engine rng(rd());
    std::shuffle(vec.begin(), vec.end(), rng);
    numbers.assign(vec.begin(), vec.end());
    
    std::cout << "Shuffled list: ";
    for (int num : numbers) {
        std::cout << num << " ";
    }
    std::cout << std::endl;
    return 0;
}

Output

Shuffled list: 3 1 5 4 2

2 Shuffle a List of Strings

In this example,

  1. We include the necessary headers: , , and .
  2. We create a list named words with string values.
  3. We create a random number generator using std::default_random_engine.
  4. We call the std::shuffle function with the iterators of the list and the random number generator.
  5. The std::shuffle function randomly rearranges the elements in the list.
  6. Finally, we print the shuffled list to standard output.

C++ Program

#include <algorithm>
#include <random>
#include <list>
#include <string>
#include <iostream>

int main() {
    std::list<std::string> words = {"apple", "banana", "cherry", "date", "elderberry"};
    std::vector<std::string> vec(words.begin(), words.end());
    std::random_device rd;
    std::default_random_engine rng(rd());
    std::shuffle(vec.begin(), vec.end(), rng);
    words.assign(vec.begin(), vec.end());
    
    std::cout << "Shuffled list: ";
    for (const std::string& word : words) {
        std::cout << word << " ";
    }
    std::cout << std::endl;
    return 0;
}

Output

Shuffled list: cherry elderberry apple banana date

Summary

In this tutorial, we learned How to Shuffle a List in C++ language with well detailed examples.




More C++ Lists Tutorials

  1. How to create an Empty List in C++ ?
  2. How to Initialize a List in C++ ?
  3. How to Get Length of a List in C++ ?
  4. How to create a List of size N in C++ ?
  5. How to create a List of Numbers from 1 to N in C++ ?
  6. How to create a List of Strings in C++ ?
  7. How to create a List of Empty Lists in C++ ?
  8. How to Access Elements in a List in C++ ?
  9. How to get Element in a List at a Specific Index in C++ ?
  10. How to get First Element in a List in C++ ?
  11. How to get Last Element in a List in C++ ?
  12. How to Iterate Over a List in C++ ?
  13. How to Iterate Over a List with Index in C++ ?
  14. How to Iterate Over a List in Reverse Order in C++ ?
  15. How to check if a List is Empty in C++ ?
  16. How to check if a List is Not Empty in C++ ?
  17. How to get Sub List in C++ ?
  18. How to get the Index of Specified Element in a List in C++ ?
  19. How to check if a Specific Element is present in the List in C++ ?
  20. How to check if a List contains all the elements of Another List in C++ ?
  21. How to count the Number of Occurrences of Specific Element in the List in C++ ?
  22. How to find the Element with Maximum Number of Occurrences in a List in C++ ?
  23. How to find the Element with Minimum Number of Occurrences in a List in C++ ?
  24. How to Sort a List in C++ ?
  25. How to Sort a List in Ascending Order in C++ ?
  26. How to Sort a List in Descending Order in C++ ?
  27. How to create a Two Dimensional List in C++ ?
  28. How to Iterate over a Two Dimensional List in C++ ?
  29. How to create a Three Dimensional List in C++ ?
  30. How to Copy a List in C++ ?
  31. How to deep Copy a List in C++ ?
  32. How to Split a List in C++ ?
  33. How to Join Lists in C++ ?
  34. How to Append an Element to a List in C++ ?
  35. How to Insert an Element at Specific Index in a List in C++ ?
  36. How to Append a List to another List in C++ ?
  37. How to Concatenate Two Lists in C++ ?
  38. How to check if Two Lists are Equal in C++ ?
  39. How to check if Two Lists have Same Elements (Regardless of Order) in C++ ?
  40. How to Convert a List of Integers to a List of Strings in C++ ?
  41. How to Convert a List of Strings to a List of Integers in C++ ?
  42. How to Convert a List of Floats to a List of Strings in C++ ?
  43. How to Convert a List of Strings to a List of Floats in C++ ?
  44. How to Reverse a List in C++ ?
  45. How to Shuffle a List in C++ ?
  46. How to Slice a List in C++ ?
  47. How to Slice First N Elements from a List in C++ ?
  48. How to Slice Last N Elements from a List in C++ ?
  49. How to Rotate Elements in a List in C++ ?
  50. How to Filter Elements of a List based on a Condition in C++ ?
  51. How to Remove Duplicates in a List in C++ ?
  52. How to Remove Element at a Specific Index from a List in C++ ?
  53. How to Remove Specific Element from a List in C++ ?
  54. How to Remove Element from List based on a Condition in C++ ?
  55. How to Sort a List of Strings in Dictionary Order in C++ ?
  56. How to Concatenate Strings in List in C++ ?
  57. How to create a List of Lists in C++ ?
  58. How to create a List of Dictionaries in C++ ?
  59. How to create a List of Sets in C++ ?