#include <vector>
#include <algorithm> // Find.
#include <iostream>
struct Wert
{
int zahl1;
int zahl2;
float zahl3;
// Den Vergleichsoperator implementieren damit ein Wert mit einer Zahl
// verglichen werden kann.
bool operator==(int zahl)
{
return zahl1 == zahl;
}
};
int main()
{
using namespace std;
// Vector füllen.
vector<Wert> werte;
werte.push_back({ 1, 10, 12.4f });
werte.push_back({ 2, 17, 13.7f });
werte.push_back({ 3, 18, 1.008f });
werte.push_back({ 4, 12, -0.4f });
werte.push_back({ 5, 555, 100.9f });
// Nach dem Wert 5 suchen.
// Find nutzt den Vergleichsoperator, weswegen wir den implementieren mussten.
auto iterator = find(werte.begin(), werte.end(), 5);
if(iterator != werte.end())
{
cout << "Wie erwartet existiert ein Wert mit zahl1=5 und zahl2="
<< iterator->zahl2 << " und zahl3=" << iterator->zahl3 << '\n';
}
else
{
cout << "Unerwarteterweise existiert kein Wert mit zahl1=5\n";
}
// Nach dem Wert 6 suchen.
auto iterator2 = find(werte.begin(), werte.end(), 6);
if(iterator2 != werte.end())
{
cout << "Unerwarteterweise existiert ein Wert mit zahl1=6\n";
}
else
{
cout << "Wie erwartet existiert kein Wert mit zahl1=6\n";
}
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4gLy8gRmluZC4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IFdlcnQKewogICAgaW50IHphaGwxOwogICAgaW50IHphaGwyOwogICAgZmxvYXQgemFobDM7CiAgICAKICAgIC8vIERlbiBWZXJnbGVpY2hzb3BlcmF0b3IgaW1wbGVtZW50aWVyZW4gZGFtaXQgZWluIFdlcnQgbWl0IGVpbmVyIFphaGwKICAgIC8vIHZlcmdsaWNoZW4gd2VyZGVuIGthbm4uCiAgICBib29sIG9wZXJhdG9yPT0oaW50IHphaGwpCiAgICB7CiAgICAgICAgcmV0dXJuIHphaGwxID09IHphaGw7CiAgICB9Cn07CgppbnQgbWFpbigpCnsKICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAgICAKICAgIC8vIFZlY3RvciBmw7xsbGVuLgogICAgdmVjdG9yPFdlcnQ+IHdlcnRlOwogICAgd2VydGUucHVzaF9iYWNrKHsgMSwgMTAsIDEyLjRmIH0pOwogICAgd2VydGUucHVzaF9iYWNrKHsgMiwgMTcsIDEzLjdmIH0pOwogICAgd2VydGUucHVzaF9iYWNrKHsgMywgMTgsIDEuMDA4ZiB9KTsKICAgIHdlcnRlLnB1c2hfYmFjayh7IDQsIDEyLCAtMC40ZiB9KTsKICAgIHdlcnRlLnB1c2hfYmFjayh7IDUsIDU1NSwgMTAwLjlmIH0pOwogICAgCiAgICAvLyBOYWNoIGRlbSBXZXJ0IDUgc3VjaGVuLgogICAgLy8gRmluZCBudXR6dCBkZW4gVmVyZ2xlaWNoc29wZXJhdG9yLCB3ZXN3ZWdlbiB3aXIgZGVuIGltcGxlbWVudGllcmVuIG11c3N0ZW4uCiAgICBhdXRvIGl0ZXJhdG9yID0gZmluZCh3ZXJ0ZS5iZWdpbigpLCB3ZXJ0ZS5lbmQoKSwgNSk7CiAgICBpZihpdGVyYXRvciAhPSB3ZXJ0ZS5lbmQoKSkKICAgIHsKICAgICAgICBjb3V0IDw8ICJXaWUgZXJ3YXJ0ZXQgZXhpc3RpZXJ0IGVpbiBXZXJ0IG1pdCB6YWhsMT01IHVuZCB6YWhsMj0iCiAgICAgICAgICAgIDw8IGl0ZXJhdG9yLT56YWhsMiA8PCAiIHVuZCB6YWhsMz0iIDw8IGl0ZXJhdG9yLT56YWhsMyA8PCAnXG4nOwogICAgfQogICAgZWxzZQogICAgewogICAgICAgIGNvdXQgPDwgIlVuZXJ3YXJ0ZXRlcndlaXNlIGV4aXN0aWVydCBrZWluIFdlcnQgbWl0IHphaGwxPTVcbiI7CiAgICB9CiAgICAKICAgIC8vIE5hY2ggZGVtIFdlcnQgNiBzdWNoZW4uCiAgICBhdXRvIGl0ZXJhdG9yMiA9IGZpbmQod2VydGUuYmVnaW4oKSwgd2VydGUuZW5kKCksIDYpOwogICAgaWYoaXRlcmF0b3IyICE9IHdlcnRlLmVuZCgpKQogICAgewogICAgICAgIGNvdXQgPDwgIlVuZXJ3YXJ0ZXRlcndlaXNlIGV4aXN0aWVydCBlaW4gV2VydCBtaXQgemFobDE9NlxuIjsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICBjb3V0IDw8ICJXaWUgZXJ3YXJ0ZXQgZXhpc3RpZXJ0IGtlaW4gV2VydCBtaXQgemFobDE9NlxuIjsKICAgIH0KfQ==