How to get Subset from a Set in C++


How to get Subset from a Set in C++ ?

Answer

To get a sub Set in C++, you can use the std::vector's erase-remove idiom or use iterator-based slicing.



✐ Examples

1 Get Sub Set with Items (Erase-Remove Idiom)

In this example,

  1. We define a vector named mySet containing elements of a specific type.
  2. We use the erase-remove idiom to remove elements outside the desired range.

C++ Program

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    // Define vector with items
    std::vector<std::string> mySet = {"apple", "banana", "orange", "grape", "melon"};

    // Get sub Set with items (Erase-Remove Idiom)
    mySet.erase(std::remove_if(mySet.begin(), mySet.end(), [](const std::string& element) {
        return element != "banana" && element != "orange" && element != "grape";
    }), mySet.end());

    // Print sub Set
    for (const auto& item : mySet) {
        std::cout << item << " ";
    }
    std::cout << std::endl;
    return 0;
}

Output

banana orange grape 

2 Get Sub Set with Items (Iterator-Based Slicing)

In this example,

  1. We define a vector named mySet containing elements of a specific type.
  2. We use iterators to specify the range of elements to extract.

C++ Program

#include <iostream>
#include <vector>

int main() {
    // Define vector with items
    std::vector<std::string> mySet = {"apple", "banana", "orange", "grape", "melon"};

    // Get sub Set with items (Iterator-Based Slicing)
    std::vector<std::string> subSet(mySet.begin() + 1, mySet.begin() + 4);

    // Print sub Set
    for (const auto& item : subSet) {
        std::cout << item << " ";
    }
    std::cout << std::endl;
    return 0;
}

Output

banana orange grape 

3 Get Sub Set from Empty Set

In this example,

  1. We define an empty vector named mySet.
  2. We attempt to get a sub Set from the empty vector, which results in an empty sub Set.

C++ Program

#include <iostream>
#include <vector>

int main() {
    // Define empty vector
    std::vector<std::string> mySet;

    // Get sub Set from empty vector
    std::vector<std::string> subSet(mySet.begin() + 1, mySet.begin() + 4);

    // Print sub Set
    for (const auto& item : subSet) {
        std::cout << item << " ";
    }
    std::cout << std::endl;
    return 0;
}

Summary

In this tutorial, we learned How to get Subset from a Set in C++ language with well detailed examples.




More C++ Sets Tutorials

  1. How to create an Empty Set in C++ ?
  2. How to Initialize a Set in C++ ?
  3. How to Get Length of a Set in C++ ?
  4. How to create a Set of size N in C++ ?
  5. How to create a Set of Numbers from 1 to N in C++ ?
  6. How to create a Set of integers in C++ ?
  7. How to create a Set of Strings in C++ ?
  8. How to Access Items in a Set in C++ ?
  9. How to get a Random Item in a Set in C++ ?
  10. How to Iterate Over a Set in C++ ?
  11. How to check if a Set is Empty in C++ ?
  12. How to check if a Set is Not Empty in C++ ?
  13. How to get Subset from a Set in C++ ?
  14. How to check if a Specific Item is present in the Set in C++ ?
  15. How to check if a Set contains all the items of Another Set in C++ ?
  16. How to Sort Items of a Set in C++ ?
  17. How to Copy a Set in C++ ?
  18. How to add an Item to a Set in C++ ?
  19. How to find Union of Two Sets in C++ ?
  20. How to find Intersection of Two Sets in C++ ?
  21. How to check if Two Sets are Equal in C++ ?
  22. How to Convert a Set of Integers to a Set of Strings in C++ ?
  23. How to Convert a Set of Strings to a Set of Integers in C++ ?
  24. How to Convert a Set of Floats to a Set of Strings in C++ ?
  25. How to Filter Items of a Set based on a Condition in C++ ?
  26. How to Remove Specific Item from a Set in C++ ?
  27. How to Remove Items from Set based on a Condition in C++ ?
  28. How to create a Set of Sets in C++ ?