Re[3]: Синтаксический сахар: x in (a,b,c)
От: Аноним  
Дата: 19.02.20 14:17
Оценка:
Здравствуйте, rg45, Вы писали:

J>>

J>>if std::set({1,2,4,6,7}).count(x)
J>>    std::cout << "x is either 1,2,4,6 or 7" << std::endl;

J>>


R>Поиск по списку с полным копированием списка? Причем с двойным копированием — сначала в initializer_list, затем в set — в случае если элементы списка заданы не prvalue выражениями. Ну, для простых типов, наверное, приемлемо.


Есть вариант без двойного копирования, но с бустом:
if (boost::algorithm::any_of_equal(std::initializer_list<int>{1,2,4,6,7}, x))
    std::cout << "x is either 1,2,4,6 or 7" << std::endl;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.