Рассмотрим следующий код игрушки, чтобы определить, содержит ли диапазон элемент:
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-Пусть кто-нибудь мне поможет. Я пытаюсь что-то, но я (тоже) новичок в (моем) SQL.
Я использую две таблицы: Items and Categories. Таблица Предметы имеет поле с внешним ключом: category_id.
Я хочу, чтобы таблица Категории держалась в порядке. Таким образом, если ни один предмет в предметах не относится к категории X в категории, категория X должна быть удалена из категории. Как это установить. Я догадался, используя DELETE ON CASCADE, но до сих пор он удалял соответствующие предметы из предметов, когда я удалял категорию из категорий.
Большое спасибо за помощь!