Ce face std::includes
std::includes returnează true dacă fiecare element din al doilea interval apare și în primul. Ambele trebuie să fie sortate după același criteriu. Elementele repetate contează: dacă al doilea interval are un element de două ori, primul trebuie să-l aibă de cel puțin două ori.
Funcționează direct pe std::set, care este mereu sortat.
Parametri
| Parametru | Descriere |
|---|---|
first1, last1 |
Mulțimea mare (sortată). |
first2, last2 |
Submulțimea verificată (sortată). |
Ce returnează
true dacă al doilea interval este inclus în primul.
Exemple
Exemplul 1: Ingredientele unei rețete
#include <algorithm>
#include <print>
#include <set>
#include <string>
int main() {
std::set<std::string> camara{"făină", "lapte", "ouă", "sare", "zahăr"};
std::set<std::string> clatite{"făină", "lapte", "ouă"};
std::set<std::string> cozonac{"drojdie", "făină", "lapte", "ouă", "zahăr"};
std::println("Pot face clătite: {}", std::includes(camara.begin(), camara.end(), clatite.begin(), clatite.end()));
std::println("Pot face cozonac: {}", std::ranges::includes(camara, cozonac));
}
Rezultat
Pot face clătite: true
Pot face cozonac: false
Exemplul 2: Elementele repetate contează
#include <algorithm>
#include <print>
#include <vector>
int main() {
std::vector<int> a{1, 2, 3, 5};
std::vector<int> b{2, 2};
std::println("{}", std::ranges::includes(a, b));
}
Rezultat
false
Greșeli frecvente
- Apelezi funcția pe vectori nesortați și primești un răspuns greșit. Sortează-i înainte sau folosește
std::set.
Comenzi înrudite
std::set_intersection: Calculează intersecția a două intervale sortate: elementele care apar în ambele.std::set_difference: Calculează diferența a două intervale sortate: elementele din primul care nu apar în al doilea.std::binary_search: Verifică foarte rapid dacă o valoare există într-un interval deja sortat.