Рассмотрим следующий код игрушки, чтобы определить, содержит ли диапазон элемент:
template
bool contains1(Iter begin, Iter end, const T& x)
{
for (; begin != end; ++begin)
{
if (*begin == x) return true;
}
return false;
}
(Да, я знаю, в стандартной библиотеке уже есть совершенно хорошие алгоритмы, это не смысл.)
Как бы я написал одно и то же с для _ каждого
и лямбды? Следующее не работает...
template
bool contains2(Iter begin, Iter end, const T& x)
{
std::for_each(begin, end, [&x](const T& y) {
if (x == y) return true;
});
return false;
}
... потому что это вернулось бы только из лямбды, а не из функции.
Нужно ли мне делать исключение, чтобы выйти из лямбды? Опять же, есть, вероятно, дюжина лучших решений этой конкретной проблемы, которые вообще не связаны с ламбдами, но это не то, о чем я прошу.
-121--959046-
Знаете ли вы о каком-либо укороченном URL-адресе, который отфильтровывает уродливые плохие слова?
Например, когда goo.gl (или любой другой укорочитель URL) генерирует короткие URL-адреса, пропускает ли он URL-адреса, такие как goo.gl/evil
или goo.gl/YouDie
или goo.gl/f__k
(без двух опущенных символов)?
Я думаю, что было бы довольно сложно отфильтровывать плохие слова, поскольку многие языки используют латинский алфавит, и действительно ли возможно отфильтровать все плохие слова на всех языках?
В моем Webapp, Я генерирую GUID, но включаю только числа и согласные и гласные u
и y
, чтобы не генерировать плохие слова (или так я надеюсь). Однако краткие URL Google, похоже, включают все гласные.
Обновление: Несколько недель назад я спросил Битли, удаляют ли они «уродливые» слова: они делают это. Я также спросил в списке рассылки укороченных URL-адресов Google, если этот укороченный URL-адрес удаляет «уродливые» слова; пока нет ответа.