How to check if a Vector contains all the items of Another Vector in C++


How to check if a Vector contains all the items of Another Vector in C++ ?

Answer

To check if a vector contains all the items of another vector in C++, you can use the std::all_of algorithm combined with the std::find algorithm.



✐ Examples

1 Check if All Elements of One Vector are in Another Vector

In this example,

  1. We include the necessary headers: #include <vector>, #include <algorithm>, and #include <iostream> for working with vectors, algorithms, and input/output streams.
  2. We create a vector named vec1 with a set of numerical values.
  3. We create another vector named vec2 with a different set of numerical values.
  4. We use the std::all_of algorithm to check if all elements of vec2 are present in vec1. The std::all_of algorithm takes a range and a predicate. The range is defined by vec2.begin() and vec2.end(), and the predicate is a lambda function that checks if each element of vec2 is found in vec1 using the std::find algorithm.
  5. The std::find algorithm searches for an element in vec1 and returns an iterator to the found element or vec1.end() if the element is not found.
  6. The std::all_of algorithm returns true if the predicate is true for all elements in the range; otherwise, it returns false.
  7. Finally, we print the result to standard output using std::cout.

C++ Program

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

int main() {
    std::vector<int> vec1 = {1, 2, 3, 4, 5};
    std::vector<int> vec2 = {2, 3, 4};
    bool result = std::all_of(vec2.begin(), vec2.end(), [&vec1](int item) {
        return std::find(vec1.begin(), vec1.end(), item) != vec1.end();
    });
    std::cout << std::boolalpha << result << std::endl;
    return 0;
}

Output

true

2 Check if All Elements of Another Vector are in the First Vector

In this example,

  1. We include the necessary headers: #include <vector>, #include <algorithm>, and #include <iostream> for working with vectors, algorithms, and input/output streams.
  2. We create a vector named main_vec with a series of character strings.
  3. We create another vector named sub_vec with a subset of character strings.
  4. We use the std::all_of algorithm to check if all elements of sub_vec are present in main_vec. The std::all_of algorithm takes a range and a predicate. The range is defined by sub_vec.begin() and sub_vec.end(), and the predicate is a lambda function that checks if each element of sub_vec is found in main_vec using the std::find algorithm.
  5. The std::find algorithm searches for an element in main_vec and returns an iterator to the found element or main_vec.end() if the element is not found.
  6. The std::all_of algorithm returns true if the predicate is true for all elements in the range; otherwise, it returns false.
  7. Finally, we print the result to standard output using std::cout.

C++ Program

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

int main() {
    std::vector<std::string> main_vec = {"apple", "banana", "cherry", "date", "fig"};
    std::vector<std::string> sub_vec = {"banana", "cherry", "date"};
    bool result = std::all_of(sub_vec.begin(), sub_vec.end(), [&main_vec](const std::string& item) {
        return std::find(main_vec.begin(), main_vec.end(), item) != main_vec.end();
    });
    std::cout << std::boolalpha << result << std::endl;
    return 0;
}

Output

true

3 Check if All Elements of a Subset Vector are in the Main Vector

In this example,

  1. We include the necessary headers: #include <vector>, #include <algorithm>, and #include <iostream> for working with vectors, algorithms, and input/output streams.
  2. We create a vector named primary_vec with a list of mixed data types including numbers and strings.
  3. We create another vector named secondary_vec with some elements that are not present in primary_vec.
  4. We use the std::all_of algorithm to check if all elements of secondary_vec are present in primary_vec. The std::all_of algorithm takes a range and a predicate. The range is defined by secondary_vec.begin() and secondary_vec.end(), and the predicate is a lambda function that checks if each element of secondary_vec is found in primary_vec using the std::find algorithm.
  5. The std::find algorithm searches for an element in primary_vec and returns an iterator to the found element or primary_vec.end() if the element is not found.
  6. Since not all elements of secondary_vec are in primary_vec, the std::all_of algorithm returns false.
  7. Finally, we print the result to standard output using std::cout.

C++ Program

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

int main() {
    std::vector<std::variant<int, std::string>> primary_vec = {10, 20, 30, "apple", "banana"};
    std::vector<std::variant<int, std::string>> secondary_vec = {20, "banana", "cherry"};
    bool result = std::all_of(secondary_vec.begin(), secondary_vec.end(), [&primary_vec](const auto& item) {
        return std::find(primary_vec.begin(), primary_vec.end(), item) != primary_vec.end();
    });
    std::cout << std::boolalpha << result << std::endl;
    return 0;
}

Output

false

Summary

In this tutorial, we learned How to check if a Vector contains all the items of Another Vector in C++ language with well detailed examples.




More C++ Vectors Tutorials

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