std::not1
Von cppreference.com
< cpp | utility | functional
| Definiert in der Header-Datei <functional> |
||
| template< class Predicate > std::unary_negate<Predicate> not1( const Predicate& pred ); |
(bis C++14) | |
| template< class Predicate > constexpr std::unary_negate<Predicate> not1( const Predicate& pred ); |
(seit C++14) (veraltet in C++17) (in C++20 entfernt) |
|
std::not1 ist eine Hilfsfunktion zum Erstellen eines Funktions-Objekts, das die Negation des übergebenen unären Prädikats zurückgibt. Das erstellte Funktions-Objekt ist vom Typ std::unary_negate<Predicate>.
Der Typ des unären Prädikats muss einen Mitgliedstyp, argument_type, definieren, der in den Parametertyp des Prädikats konvertierbar ist. Die von std::ref, std::cref, std::negate, std::logical_not, std::mem_fn, std::function, std::hash oder aus einem anderen Aufruf von std::not1 erhaltenen unären Funktions-Objekte haben diesen Typ definiert, ebenso wie Funktions-Objekte, die vom veralteten std::unary_function abgeleitet sind.
Inhalt |
[bearbeiten] Parameter
| pred | - | unäres Prädikat |
[bearbeiten] Rückgabewert
std::not1 gibt ein Objekt vom Typ std::unary_negate<Predicate> zurück, konstruiert mit pred.
[bearbeiten] Ausnahmen
(keine)
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <algorithm> #include <functional> #include <iostream> #include <iterator> #include <numeric> #include <vector> struct LessThan7 : std::unary_function<int, bool> { bool operator()(int i) const { return i < 7; } }; int main() { std::vector<int> v(10); std::iota(std::begin(v), std::end(v), 0); std::cout << std::count_if(begin(v), end(v), std::not1(LessThan7())) << '\n'; // the same as above using std::function std::function<bool(int)> less_than_9 = [](int x) { return x < 9; }; std::cout << std::count_if(begin(v), end(v), std::not1(less_than_9)) << '\n'; }
Ausgabe
3 1
[bearbeiten] Siehe auch
| (C++17) |
erstellt ein Funktions-Objekt, das das Komplement des Ergebnisses des gehaltenen Funktions-Objekts zurückgibt (Funktions-Template) |
| (in C++17 veraltet)(in C++20 entfernt) |
Wrapper-Funktionsobjekt, das die Negation (Komplement) des von ihm gehaltenen unären Prädikats zurückgibt (Klassenvorlage) |
| (C++11) |
kopierfähiger Wrapper für jedes kopierkonstruierbare aufrufbare Objekt (Klassen-Template) |
| (C++23) |
Move-only-Wrapper für jedes aufrufbare Objekt, das Qualifizierer in einer gegebenen Aufrufsignatur unterstützt (Klassen-Template) |
| (in C++17 veraltet)(in C++20 entfernt) |
konstruiert ein benutzerdefiniertes std::binary_negate-Objekt (Funktionsvorlage) |
| (in C++11 veraltet)(in C++17 entfernt) |
erstellt einen adaptor-kompatiblen Funktionsobjekt-Wrapper aus einem Funktionszeiger (Funktionsvorlage) |
| (in C++11 veraltet)(in C++17 entfernt) |
Adaptor-kompatible Basisklasse für unäre Funktionen (Klassenvorlage) |