Как вернуться из функции внутри лямбды?

Рассмотрим следующий код игрушки, чтобы определить, содержит ли диапазон элемент:

template<typename Iter, typename T>
bool contains1(Iter begin, Iter end, const T& x)
{
    for (; begin != end; ++begin)
    {
        if (*begin == x) return true;
    }
    return false;
}

(Да, я знаю, в стандартной библиотеке уже есть совершенно хорошие алгоритмы, это не точка.)

Как бы я написал одно и то же с для _ каждого и лямбды? Следующее не работает...

template<typename Iter, typename T>
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- Как использовать DELETE ON CASCADE для отношения «многие к одному» Может мне кто-нибудь помочь. Я пытаюсь что-то, но я (тоже) новичок в (моем) SQL. Я использую две таблицы: Items and Categories. Таблица Предметы имеет поле с внешним ключом: category_id. Я хочу столик...

Пусть кто-нибудь мне поможет. Я пытаюсь что-то, но я (тоже) новичок в (моем) SQL.

Я использую две таблицы: Items and Categories. Таблица Предметы имеет поле с внешним ключом: category_id.

Я хочу, чтобы таблица Категории держалась в порядке. Таким образом, если ни один предмет в предметах не относится к категории X в категории, категория X должна быть удалена из категории. Как это установить. Я догадался, используя DELETE ON CASCADE, но до сих пор он удалял соответствующие предметы из предметов, когда я удалял категорию из категорий.

Большое спасибо за помощь!

9
задан Bart Weber 9 November 2012 в 16:31
поделиться