Мейерс, multimap и equal_range vs. find
От: Eugene Sh Россия  
Дата: 26.10.09 22:08
Оценка:
Читал тут "Effective STL" Скотта Мейерса. В совете 45 он рассказывает, как искать элементы в контейнерах. И в самом конце совета приведена таблица (с. 183), в которой описано, каким методом пользоваться в зависимости от задачи и типа контейнера.
Так вот, для вопроса "Где находятся все объекты с заданным значением?" и контейнера multimap Мейерс рекомендует воспользоваться "find (итеративный вызов)".
Вопрос: почему не equal_range?
Re: Мейерс, multimap и equal_range vs. find
От: _DAle_ Беларусь  
Дата: 26.10.09 22:45
Оценка:
Здравствуйте, Eugene Sh, Вы писали:

ES>Читал тут "Effective STL" Скотта Мейерса. В совете 45 он рассказывает, как искать элементы в контейнерах. И в самом конце совета приведена таблица (с. 183), в которой описано, каким методом пользоваться в зависимости от задачи и типа контейнера.

ES>Так вот, для вопроса "Где находятся все объекты с заданным значением?" и контейнера multimap Мейерс рекомендует воспользоваться "find (итеративный вызов)".
ES>Вопрос: почему не equal_range?

Потому что не с заданным ключом, а с заданным значением?
Re[2]: Мейерс, multimap и equal_range vs. find
От: Eugene Sh Россия  
Дата: 26.10.09 23:23
Оценка:
Здравствуйте, _DAle_, Вы писали:

_DA>Потому что не с заданным ключом, а с заданным значением?


У меня тоже такая идея было возникла, но нет. Во-первых, это был общий вопрос для всех контейнеров, поэтому использовать слово "ключ" (хотя именно он и имеется ввиду для multimap) было бы неправильно по отношению ко всем остальным.
И, во-вторых, для того же вопроса и контейнеров set и map, автор рекомендует использовать equal_range.
Re[3]: Мейерс, multimap и equal_range vs. find
От: _DAle_ Беларусь  
Дата: 26.10.09 23:31
Оценка: 8 (1)
Здравствуйте, Eugene Sh, Вы писали:

ES>Здравствуйте, _DAle_, Вы писали:


_DA>>Потому что не с заданным ключом, а с заданным значением?


ES>У меня тоже такая идея было возникла, но нет. Во-первых, это был общий вопрос для всех контейнеров, поэтому использовать слово "ключ" (хотя именно он и имеется ввиду для multimap) было бы неправильно по отношению ко всем остальным.

ES>И, во-вторых, для того же вопроса и контейнеров set и map, автор рекомендует использовать equal_range.

Я сейчас открыл электронную версию книги, которая у меня есть:
Item 45. Distinguish among count, find, binary search, lower_bound, upper_bound, and equal_range.
Пункт в таблице "Where are all the objects with the desired value?". Напротив "With a multiset or multimap" написано equal_range. К сожалению, что это за издание, я не знаю.
Re[4]: Мейерс, multimap и equal_range vs. find
От: Eugene Sh Россия  
Дата: 26.10.09 23:46
Оценка: +1 :)
Здравствуйте, _DAle_, Вы писали:

_DA>Я сейчас открыл электронную версию книги, которая у меня есть:

_DA>Item 45. Distinguish among count, find, binary search, lower_bound, upper_bound, and equal_range.
_DA>Пункт в таблице "Where are all the objects with the desired value?". Напротив "With a multiset or multimap" написано equal_range. К сожалению, что это за издание, я не знаю.

Класс, спасибо!
Скорее всего, проблема с переводом. У меня русская версия книги, издание 2002 г., Питер.

На прошлой неделе было собеседование, я ответил, что надо использовать equal_range. Через 2 дня как раз прочитал этот совет, и там написано find без каких-либо пояснений. С тех пор мучался
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.