|
Программирование >> Операторы преобразования типа
size type нонтейнер: :erase (const Т& value) О Удаляет из ассоциативного контейнера все элементы со значением, равным value. О Возвращает количество удаленных элементов. О Вызывает деструкторы для удаляемых элементов. ОТ - тип сортируемых данных: □ для множеств и мультимножеств - тип элемента; □ для отображений и мультиотображений - тип ключа. О Функция не генерирует исключений. О Поддерживается множествами, мультимножествами, отображениями, мультиотображениями. void контейнер::erase (iterator pos) iterator нонтейнер: -.erase (iterator pos) О Обе версии удаляют элемент в позиции итератора pos. О Для последовательных контейнеров (векторы, деки, списки и строки) используется вторая сигнатура, которая возвраи1аст позтщию следующего элемента (или endO). О Для ассоциативных контейнеров (множества, мультимножества, отображения, мультиотображения) используется первая сигнатура, которая пе имеет возвращаемого значения. О Обе версии вызывают деструкторы для удаляемых элементов. О Перед нызовом необходимо убедиться в том, что итератор pos имеет допустимое значение. Пример; coll,ега5е(со11.endO); ОШИБКА - непредсказуемые последствия О В векторах и деках в результате выполнения операции итераторы и ссылки на другие элементы могут стать недействительными. О В векторах и деках функция генерирует исключенрш только в том случае, если исключение генерируется капируюии-iM конструктором и.ли оператором присваивания. В остальных контейнерах функция не генерирует исключений. О Поддерживается векторами, деками, списками, множествами, мультимноже-ствам1т, отображениями, мультиотображениями, строками. void контейнер-, -.erase (iterator beg. iterator end) iterator контейнер: -.erase (Iterator beg. iterator end) О Обе версии удаляют элементы в интервале [beg,end). О Для последовательных контейнеров (векторы, деки, списки и строки) используется вторая сигнатура, которая возвращает П031щию элемента, находящегося за последним удаленным элементом (или end()). О Для ассоциативных контейнеров (множества, мультимножества, отображения, мультиотображения) используется первая сигнатура, которая не имеет возвращаемого значения. О Интервал является открытым, то есть удаляются все элементы, включая beg, но исключая end. О Обе версии вызывают десгруюоры для удаляемых элементов. О Перед вызовом необходимо убедиться в том, что итераторы beg и end определяют действительный интервал элементов контейнера. О В векторах и деках в результате выполнения операции итераторы и ссылки на другие элементы могут стать недействительными. О В векторах и деках функция генерирует исключения то.Ш)Ко в том случае, если исключение генерируется копирующим конструктором или оператором присваивания. В остальных контейнерах функция не генерирует исключений. О Поддерживается векторами, деками, списками, множествами, мультимножествами, отображениями, мультиотображениями, строками. void KDwгейзер::pop front (const Т& value) О Удаляет первый элемент контейнера. О Эквивалентно следующему вызову; нонтейнер.егазе{нонтейнер.begini)). О Если контейнер не содержит элементов, последствия вызова непредсказуемы. Следовательно, при вызове необходимо убедиться в том, что контейнер содержит по крайней мере один элемент (size()>0). О Функцрш не генерирует исключений. О Поддерживается деками и списками. void нонтейнер:-.popjhck (const Т& value) О Удаляет последний алсмснт. О Эквивалентно следующему вызову, по при условии, что это выражение действительно (для векторов выпо.лнение этого условия не гарантировано - см. с. 264); нонтейнер.егаsе(- -нонтейнер.end()) О Если контейнер не содержит элементов, последствия вызова непредсказуемы. Следовательно, при вызове необходимо убедиться в том, что контейнер содержит по крайней мере один элемент (size()>0). О Функция не генерирует исключений, О Поддерживается векторами, деками, списками. void Kowrewep::resize (size type пит) void контейнер::resize (sizetype num. T value) О Обе версии изменяют количество элементов до ?гит. О Если при вызове s\zeO=~num, вызов игнорируется. О Если при вызове s\zeQ<num, дополнительные элементы создаются и присоединяются к концу контейнера. В первой версии новые элементы создаются вызовом конструктора по умолчанию, во второй версии они создаются как копии value. О Если при вызове s\ZG.Q>num, элементы в конце контейнера удаляются до заданного размера. В этом случае для удаляемых элементов вызываются деструкторы. О В векторах и деках в результате выполнения операции итераторы и ссылки иа другие алементы могут стать недействительными. О В векторах и деках функция либо выполняется успешно, либо не вносит изменений, еспи при выполнении копирующего конструктора или оператора присваивания не было сгенерировано исключение. В списках функция либо выполняется успешно, либо не вносит изменений. О Поддерживается векторами, деками, списками, строками. void контейнер::с1еаг О . О Удаляет все элементы, оставляя контейнер пустым. О Вызывает деструкторы для удаляемых элементов. О Все итераторы и ссылки на контейнер становятся недействительными. О В векторах и деках функция генерирует исключения только в том случае, если исключение генерируется копирующим конструктором или оператором присваивания. В остальных контейнерах функция пе генерирует исключений. О Поддерживается векторами, деками, списками, множествами, мультимножествами, отображениями, му.льтиотображениями, строками. Специальные функции для списков void список: : unique () void СЛИСОК::unique (BinaryPredicate op) О Обе версии оставляют в списке лишь один элемент с каждым значением и удаляют псе последующие дубликаты. В результате значение каждого элемента списка отличается от значения всех остальных .элементов. О Первая версия удаляет все элементы, значение которых совпадает со значением одного из предшествующих алементов. О Вторая версия удаляет все элементы, следующие после элемента е, для которых бинарный предикат ор{элемепт,е) возвращает true. Другими словами, предикат используется не для сравнения элемента с предшественником; э.ле-меит сравнивается с предыдупим элементом, который не был удален. О Предикат ор не до.лжен изменять свое состояние во время вызова функции. За подробностями обращайтесь на с. 303. Вторая версия sort() работоспособна только в системах с поддержкой шаблонных функций классов (см. с. 28).
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |