std::deque
(双端队列)是 C++ 标准库中的容器之一,它支持在队列的前后两端进行高效的插入和删除操作。下面是 std::deque
支持的一些常用操作:
1.构造函数
deque<T>
:默认构造函数,创建一个空的双端队列。deque<T>(size_type count, const T& value)
:使用指定数量的元素初始化双端队列,并设置每个元素的初始值为value
。deque<T>(InputIterator first, InputIterator last)
:使用迭代器范围[first, last)
初始化双端队列。
2.大小和容量
size()
:返回双端队列中的元素数量。empty()
:检查双端队列是否为空。max_size()
:返回双端队列可以容纳的最大元素数量。resize(size_type count)
:调整双端队列的大小,使其包含count
个元素。shrink_to_fit()
:要求双端队列将其容量调整为适应当前大小。
3.元素访问
operator[]
:访问指定索引处的元素。at(size_type pos)
:访问指定索引处的元素,带有边界检查。front()
:返回队列的第一个元素的引用。back()
:返回队列的最后一个元素的引用。
4. 插入和删除
push_front(const T& value)
:将元素插入到队列的前端。push_back(const T& value)
:将元素插入到队列的后端。pop_front()
:移除队列的第一个元素。pop_back()
:移除队列的最后一个元素。emplace_front(Args&&... args)
:在队列的前端构造一个新元素。emplace_back(Args&&... args)
:在队列的后端构造一个新元素。insert(iterator pos, const T& value)
:在指定位置插入一个元素。erase(iterator pos)
:移除指定位置的元素。
5. 迭代器
begin()
:返回指向队列第一个元素的迭代器。end()
:返回指向队列末尾的迭代器。rbegin()
:返回指向队列最后一个元素的逆向迭代器。rend()
:返回指向队列起始位置之前的逆向迭代器。
6.其他操作
clear()
:移除双端队列中的所有元素。swap(deque<T>& other)
:交换两个双端队列的内容。
这些是 std::deque
的一些常见操作,可以根据实际需求选择适合的操作来使用双端队列。
共 1 条回复
copy 自 chat-gpt