Przeszukiwanie std::vector

0

Hi, czy std::vector posiada jakaś funkcję, która działa podobnie jak pythonowy operator in?
Pozdrawiam i dziękuję za pomoc!

0

zasadniczo nie zawiera. możesz emulować, wyszukując wartość w vector - ale to będzie wolne. w miarę możliwości użyj std::set albo std::map

#include <vector>
#include <set>
#include <map>
#include <algorithm>

using namespace std;

struct object { /* ... */ };

int main() {
    // inicjalizacja w stylu C++0x
    vector<int> a{
        1,2,3,4,5,6
        };
    set<int> b{
        1,2,3,4,5,6
        };
    map<int, object> c{
        { 1, object() },
        { 2, object() },
        { 3, object() },
        { 4, object() },
        { 5, object() }
        };

    if( a.end() != find(a.begin(), a.end(), 4)) {
        // wyszukano w vector: wolne
        }

    if( b.end() != find(b.begin(), b.end(), 4)) {
        // wyszukano w set: szybkie (miejmy nadzieję)
        }

    if( b.end() != b.find(4)) {
        // wyszukano w set: szybkie i krótsze
        }

    if( c.end() != c.find(4)) {
        // wyszukano w map: szybkie, pod c[4] siedzi jakiś obiekt
        }

    return 0;
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1