C++ 概念: SequenceContainer

来自cppreference.com
< cpp‎ | concept

SequenceContainer是一个存储在一个线性排列的相同类型的对象的Container.
原文:
A SequenceContainer is a Container that stores objects of the same type in a linear arrangement.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

目录

[编辑] 要求

图例
原文:
Legend
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

X
容器类型
原文:
Container type
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
T
元素的类型
原文:
Element type
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
a, b
对象的类型X
原文:
Objects of type X
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
t
对象的类型T
原文:
Object of type T
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
n
正整数
原文:
Positive integer
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
i, j
的有效范围InputIterators表示
原文:
InputIterators denoting a valid range
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
il std::initializer_list<T>
args
参数组
原文:
Parameter pack
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
p, q
const_iteratorsa
原文:
const_iterators in a
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里


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
  • 所有的引用是无效的
    原文:
    All references are invalidated
    这段文字是通过 Google Translate 自动翻译生成的。
    您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
  • a.empty() == true
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起)
静态的连续数组
(类模板) [edit]
动态的连续数组
(类模板) [edit]
双向队列
(类模板) [edit]
(C++11起)
单向链表
(类模板) [edit]
双向链表
原文:
doubly-linked list
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(类模板) [edit]

[编辑] 权衡/使用说明

std::array
快速访问,但固定数量的元素
原文:
Fast access but fixed number of elements
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
std::vector
快速访问,但大多是低效率的插入/缺失
原文:
Fast access but mostly inefficient insertions/deletions
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
std::list
std::forward_list
高效的插入/缺失的序列在中间
原文:
Efficient insertion/deletion in the middle of the sequence
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
std::deque
在开始和结束时的序列的高效的插入/缺失
原文:
Efficient insertion/deletion at the beginning and at the end of the sequence
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里