Перегрузка методов C ++ STL - PullRequest
2 голосов
/ 30 марта 2009

Как я могу перегрузить реализацию STL для таких методов, как find, erase и insert, чтобы принимать различные параметры? Я пытался найти перегрузку методов STL, но не смог найти никакой помощи.

Ответы [ 3 ]

11 голосов
/ 30 марта 2009

Вы не можете перегружать методы класса, не редактируя код этого класса.

Напишите свои собственные бесплатные функции, которые действуют как помощники; они будут принимать соответствующий класс контейнера в качестве первого параметра.

Вы можете наследовать от класса и добавлять методы таким способом, но классы контейнера std не предназначены для наследования от.

3 голосов
/ 30 марта 2009

Вам не разрешено добавлять перегрузки в пространство имен std. Допускается только специализация функций и алгоритмов для ваших собственных типов данных. Если вам нужен другой поиск, удалите, вставьте ... внедрите оболочку (вне пространства имен std) и используйте ее.

И я бы тоже не советовал ... Какие перегрузки вы хотите обеспечить?

1 голос
/ 03 января 2011

Вам не разрешено это делать; стандарт запрещает это.

...