Как фильтровать элементы с карты std ::? [дублировать]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как фильтровать элементы с карты std ::? [дублировать]

Сообщение Anonymous »

У меня есть примерно следующий код. Можно ли это сделать лучше или эффективнее? Возможно, используя std :: remove_if ? Можете ли вы удалить элементы с карты во время ее прохождения? Можем ли мы избежать использования временной карты? < /P>

typedef std::map Actions;
static Actions _actions;

bool expired(const Actions::value_type &action)
{
return ;
}

void bar(const Actions::value_type &action)
{
// do some stuff
}

void foo()
{
// loop the actions finding expired items
Actions actions;
BOOST_FOREACH(Actions::value_type &action, _actions)
{
if (expired(action))
bar(action);
else
actions[action.first]=action.second;
}
}
actions.swap(_actions);
}


Подробнее здесь: https://stackoverflow.com/questions/180 ... m-a-stdmap
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»