Array nach Inhalt abfragen



  • Hallo,

    ich hab ein CString-Array.

    CString obPl[10000]
    

    Gibt es eine Möglichkeit den Array mit einer Funktion abzufragen, ob in einem der Felder von dem Array Inhalt drin ist?

    Ohne jetzt explizit ein Feld abzufragen, sprich

    !objPl[0].IsEmpty()
    

    Gruss,
    chullain



  • CString? Ist das nicht eine MFC-Klasse?

    Jedenfalls wäre da sicherlich std::find_if passend, wenn du STL-Algorithmen magst:

    template <typename T, unsigned I> // C++Builder <= 2006
        inline unsigned ArraySize (T(&val)[I])
    { return I; }
    template <typename T, unsigned I> // C++Builder >= 2007
        inline unsigned ArraySize (T(*val)[I])
    { return I; }
    
    void foo (void)
    {
        String array[10];
        array[6] = "test";
    
        struct StringIsNotEmpty { static inline bool pred (const String& str) { return !str.IsEmpty (); } };
    
        String* sptr = std::find_if (array, array + ArraySize (array),
            StringIsNotEmpty::pred);
        if (sptr == array + ArraySize (array)) // end()
            throw Exception ("Index out of range!");
    }
    

Anmelden zum Antworten