Думаю, можно просто `Item2Friend_.remove (Friend2Item_.value (fr));` вместо всего if'а. Ведь ничего страшного не случится, если удалить default-constructed item, что какой-нибудь там nullptr, скорее всего?