std::hash <std::experimental::optional>
Von cppreference.com
< cpp | experimental | optional
| Definiert im Header <experimental/optional> |
||
| template< class T > struct hash<std::experimental::optional<T>>; |
(library fundamentals TS) | |
Die Template-Spezialisierung von std::hash für die std::experimental::optional-Klasse ermöglicht es Benutzern, Hashes der in optional-Objekten enthaltenen Werte zu erhalten.
[edit] Template-Parameter
| T | - | der Typ des in optional-Objekt enthaltenen Werts. Die Spezialisierung std::hash<T> muss die Anforderungen der Klassenvorlage hash erfüllen. |
[edit] Beispiel
Führen Sie diesen Code aus
#include <experimental/optional> #include <iostream> #include <string> #include <unordered_set> using namespace std::literals; int main() { // hash<optional> makes it possible to use unordered_set std::unordered_set<std::experimental::optional<std::string>> s = { "abc"s, std::experimental::nullopt, "def"s }; for (const auto& o : s) std::cout << o.value_or("(null)") << ' '; std::cout << '\n'; }
Mögliche Ausgabe
def abc (null)
[edit] Siehe auch
| (C++11) |
Hash-Funktionsobjekt (Klassenvorlage) |