Добавить в (unordered_)(multi)set operator[]

Nate Reinar Windwood
Nate Reinar Windwood

set::operator[](const Key &) -> bool;

multiset::operator[](const Key &) -> sise_t;

unordered_set::operator[](const Key &) -> bool;

unordered_multiset::operator[](const Key &) -> size_t;

-5
рейтинг
6 комментариев
al-mission-2016

У всех этих контейнеров уже есть count( const Key& ) -> size_t;
: )
operator[] всё-же предназначен для доступа или модификации.

al-mission-2016
Nate Reinar Windwood

al-mission-2016, unordered_set, например, это по сути отображение T -> bool, так что это можно считать доступом к элементу. Тот факт, что элементы с value = false вообще не хранятся, а для true хранятся только ключи — деталь реализации, не имеющая отношения к семантике.

Nate Reinar Windwood
Sasha Sitnikov

Nate Reinar Windwood, если говорить в таких терминах, то это отображение T -> T, что очень важно, т.к. из равенства элементов с точки зрения set не следует их эквивалентность.

Sasha Sitnikov
Nate Reinar Windwood

Sasha Sitnikov, конкретно unordered_map — это вообще хэш-таблица, эквивалентность тут ни при чем. В set нас, напротив, не интересует равенство, вместо него одинаковыми считаются эквивалентные элементы. Равенство и эквивалентность в одном контейнере не пересекаются, так что неважно, что откуда следует или нет.

Nate Reinar Windwood
Sasha Sitnikov

Nate Reinar Windwood, собственно, важно именно потому, что при поиске элемента в set может потребоваться не только узнать, присутствует ли он в контейнере, но и достать этот самый элемент, если он там есть.

Sasha Sitnikov
Nate Reinar Windwood

Что за фигня, куда делось текстовое описание с обоснованием про математику и отображения?! Это сайт такой кривой, или модератору заняться нечем?

Nate Reinar Windwood
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).
Все предложения