Ich habe eine enum
, eine Struktur mit diesen enum
als Mitglied und einen Vektor dieser Strukturen als solche:Suche nach einer Enum in einer Struktur in einem Vektor in C++
enum TickerType { tt1, tt2, tt3 };
struct Ticker {
std::string name;
TickerType type;
};
std::vector<Ticker> vect;
Ich mag für ein suchen Element in vect
, das vom Typ tt1
ist. Für welche erklärte ich
struct find_ticker
{
const TickerType type;
find_ticker(TickerType type) : type(type) {};
bool operator() (const Ticker& ticker) const
{
return ticker.type == type;
}
};
und sah mit:
if (std::find (vect.begin(), vect.end(), find_ticker (tt1)) != tickers.end())
Aber ich bekomme
error: no match for ‘operator==’ (operand types are ‘Dfp::Ticker’ and ‘const {anonymous}::find_ticker’) || { return *__it == _M_value; }
* Dfp ist der globale Namensraum der Anwendung und find_ticker definiert in ein anoymous Namespace in der Implementierungsdatei, wo ich es brauche
Vect mit Tickern vergleichen? – billz