Создайте новый пакет внутри папки SRC, а затем перетащите свой файл класса в новый пакет. Так что имя пакета по умолчанию будет изменено
См. http://www.sgi.com/tech/stl/Map.html
, Карта имеет важное свойство, что вставка нового элемента в карту не делает недействительным итераторы, которые указывают на существующие элементы. Стирание элемента из карты также не делает недействительным итераторов, кроме, конечно, для итераторов, которые на самом деле указывают на элемент, который стирается.
причина возврата итератора на стирании состоит в том так, чтобы можно было выполнить итерации по списку, стирающему элементы, когда Вы идете. Если стирание объекта не делает недействительным существующие итераторы нет никакой потребности сделать это.
Так же, как в стороне, STL, поставленный с Visual Studio MS, C++ (Dinkumware IIRC) предоставляет реализации Map erase
функция, возвращая итератор следующему элементу.
Они отмечают, что это не приспосабливание стандартов.
Несоответствие должно использовать. vector
последовательность, имеющая упорядочивание по элементам. В то время как это верно, что элементы в map
также заказаны согласно некоторому критерию сравнения, это упорядочивание неочевидно из структуры. Нет никакого эффективного способа стать от одного элемента до следующего (эффективным = постоянное время). На самом деле для итерации по карте является довольно дорогим; или создание итератора или сам итератор включают техническую победу полное дерево. Это не может быть сделано в O ( n), если стек не используется, в этом случае требуемое пространство больше не является постоянным.
, В целом, просто нет никакого дешевого способа возвратить “next” элемент после стирания. Для последовательностей, там путь.
Кроме того, Грабят, является правильным. Нет никакой потребности в Карте для возврата итератора.
erase
возвраты iterator
в C++ 11. Это происходит из-за дефектный отчет 130 :
Таблица 67 (23.1.1) говорит что контейнер:: стирание (итератор) возвращает итератор. Таблица 69 (23.1.2) говорит, что в дополнение к этому требованию, ассоциативные контейнеры также говорят что контейнер:: стирание (итератор) возвращается пусто. Это не дополнение; это - изменение в требованиях, которое имеет эффект того, чтобы заставлять ассоциативные контейнеры не удаться отвечать требованиям для контейнеров.
комитет по стандартам принял это:
LWG соглашается, что тип возврата должен быть итератором, не пусто. (Alex Stepanov соглашается также.)
(LWG = Рабочая группа Библиотеки).
Я понятия не имею, является ли это ответом, но одна причина могла бы быть со стоимостью определения местоположения следующего элемента. Итерация через карту является по сути "медленной".