Концепции C++: SequenceContainer
Материал из cppreference.com
![]() |
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке.) |
SequenceContainer
является Container
который хранит объекты того же типа в линейном расположении.Оригинал:
A
SequenceContainer
is a Container
that stores objects of the same type in a linear arrangement.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Содержание |
[править] Требования
Оригинал: Legend Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. | |
X
|
Тип контейнера
Оригинал: Container type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
T
|
Тип элемента
Оригинал: Element type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
a , b
|
Объекты типа
X Оригинал: Objects of type X Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
t
|
Объект типа
T Оригинал: Object of type T Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
n
|
Положительное целое число
Оригинал: Positive integer Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
i , j
|
InputIterator s обозначающих допустимый диапазонОригинал: InputIterator s denoting a valid rangeТекст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
il
|
std::initializer_list<T> |
args
|
Параметр пакета
Оригинал: Parameter pack Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
p , q
|
const_iterators в
a Оригинал: const_iterators in a Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
expression | return type | effects | precondition | postcondition |
---|---|---|---|---|
X(n,t) | Constructs a SequenceContainer containing n copies of t |
T CopyInsertable |
std::distance(begin(),end()) == n | |
X(i,j) | Constructs a SequenceContainer equivalent to the range [i,j)
|
|
std::distance(begin(),end()) == std::distance(i,j) | |
X(il) | X(il.begin(),il.end) | |||
a = il | X& | Assigns the range represented by il into a
|
T CopyInsertable and CopyAssignable
|
Existing elements of a are destroyed or assigned to
|
a.emplace(p,args) | iterator | Insert an object constructed with std::forward<Args>(args) before p
|
|
|
a.emplace(p,t) | iterator | Inserts a copy of t before i
|
|
|
a.insert(p,n,t) | iterator | Inserts n copies of t before i
|
T CopyInsertable and CopyAssignable
|
|
a.insert(p,i,j) | iterator | Inserts copies of elements in [i, j) before p
|
|
Each iterator in [i,j) is dereferenced once
|
a.insert(p, il) | iterator | a.insert(p,il.begin(),il.end()) | ||
a.erase(q) | iterator | Erases the element pointed to by q | (std::stack, std::vector) T MoveAssignable
|
|
a.erase(p,q) | iterator | Erases elements in [p,q) |
(std::stack, std::vector) T MoveAssignable |
|
a.clear() | void | Destroys all elements in a |
| |
a.assign(i,j) | void | Replaces elements in a with a copy of [i, j)
|
|
Each iterator in [i,j) is dereferenced once
|
a.assign(il) | void | a.assign(il.begin(),il.end()) | ||
a.assign(n,t) | void | Replaces elements in a with n copies of t
|
T CopyInsertable and CopyAssignable
|
[править] Дополнительные операции
Этот раздел не завершён |
[править] SequenceContainers в стандартной библиотеке
(начиная с C++11) |
статический непрерывный массив (шаблон класса) |
динамический непрерывный массив (шаблон класса) | |
двусторонняя очередь (шаблон класса) | |
(начиная с C++11) |
односвязный список (шаблон класса) |
двусвязный список (шаблон класса) |
[править] Компромиссы / использование заметок
std::array | Быстрый доступ, но фиксированное число элементов
Оригинал: Fast access but fixed number of elements Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
std::vector | Быстрый доступ, но в основном неэффективной вставок / удалений
Оригинал: Fast access but mostly inefficient insertions/deletions Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
std::list std::forward_list |
Эффективное вставки / удаления в середине последовательности
Оригинал: Efficient insertion/deletion in the middle of the sequence Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
std::deque | Эффективное вставки / удаления в начале и в конце последовательности
Оригинал: Efficient insertion/deletion at the beginning and at the end of the sequence Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |