C++ 概念: SequenceContainer
来自cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
甲
SequenceContainer是一个存储在一个线性排列的相同类型的对象的Container.Original:
A
SequenceContainer is a Container that stores objects of the same type in a linear arrangement.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
目录 |
[编辑] 要求
Original: Legend The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | |
X
|
容器类型
Original: Container type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
T
|
元素的类型
Original: Element type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
a, b
|
对象的类型
XOriginal: Objects of type XThe text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
t
|
对象的类型
T Original: Object of type T The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
n
|
正整数
Original: Positive integer The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
i, j
|
的有效范围
InputIterators表示Original: InputIterators denoting a valid rangeThe text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
il
|
std::initializer_list<T> |
args
|
参数组
Original: Parameter pack The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
p, q
|
const_iterators
a Original: const_iterators in a The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
| 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 :: deque的,std :: vector的) T MoveAssignable
|
|
| a.erase(p,q) | iterator | Erases elements in [p,q) |
(std :: deque的,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 起) |
静态连续的数组 Original: static contiguous array The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (类模板) |
| 动态连续的数组 Original: dynamic contiguous array The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (类模板) | |
| 双端队列 Original: double-ended queue The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (类模板) | |
| (C++11 起) |
单链表 Original: singly-linked list The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (类模板) |
| 双向链表 Original: doubly-linked list The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (类模板) | |
[编辑] 权衡/使用说明
| std::array | 快速访问,但固定数量的元素
Original: Fast access but fixed number of elements The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
| std::vector | 快速访问,但大多是低效率的插入/缺失
Original: Fast access but mostly inefficient insertions/deletions The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
| std::list std::forward_list |
高效的插入/缺失的序列在中间
Original: Efficient insertion/deletion in the middle of the sequence The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
| std::deque | 在开始和结束时的序列的高效的插入/缺失
Original: Efficient insertion/deletion at the beginning and at the end of the sequence The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |