boost :: multi_index и std :: map find () и erase () - PullRequest
1 голос
/ 03 декабря 2011

Можно ли обернуть методы boost::multi_index find() и erase() для получения аналогичных std::map find() и erase() методов?

[ из комментариев: ] У меня есть этот метод:

typename container1::const_iterator find(const K& key) const
{
  //typedef typename nth_index<container1,0>::type it; c.get<1>().find(key);
  return (???);
}

Что я должен написать в своем ответном заявлении?

1 Ответ

1 голос
/ 04 декабря 2011

Если я понимаю ваш вопрос, вы хотите вернуть итератор индекса 0, тогда как поиск выполняется с индексом 1, верно? Использовать проекцию итератора :

template<typename Container, typename Key>
typename Container::const_iterator find(const Container& c, const Key& key)
{
  return c.project<0>(c.get<1>().find(key));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...