Обычно меня не интересует стоимость предмета в наборе, меня интересует только то, существует он или нет.И многократное написание if (s.find(val) == s.end())
является длинным, уродливым и менее читаемым.
Есть ли хороший способ, который выглядит как if (contains(s,val))
, что несколько стандартно (stl, boost).
Бонусное очкодля решения, которое работает и для карт.
Да, я знаю, что могу
#define has(X,Y) (X).find(Y) != (X).end()
template<T,U> inline bool has(T s,U elt) {return s.find(elt) != s.end();}
, но я бы предпочел использовать лучшую практику, чем заново изобретать множество небольших утилит.