queue容器的成员函数

std::queue 是一个容器适配器,底层默认使用 std::deque,它提供以下主要成员函数和关联操作:


一、构造与赋值

explicit queue(const Container& cont);        // 从已有容器拷贝构造
explicit queue(Container&& cont);             // 从右值容器移动构造
queue(const queue& other);                    // 拷贝构造
queue(queue&& other) noexcept;                // 移动构造
queue& operator=(const queue& other);         // 拷贝赋值
queue& operator=(queue&& other) noexcept;     // 移动赋值
~queue();                                      // 析构函数
  • Container 默认是 std::deque,也可以自定义为 std::liststd::vector(需支持 push_back/pop_front)。


二、容量相关

bool empty() const;       // 队列是否为空
size_type size() const;   // 队列中元素个数
  • 复杂度empty()size() 均为常数时间 (O(1)).


三、访问元素

reference front();             // 访问队首元素 (可修改)
const_reference front() const; // 访问队首元素 (只读)
reference back();              // 访问队尾元素 (可修改)
const_reference back() const;  // 访问队尾元素 (只读)
  • 注意:在调用前应确保 !empty()


四、修改容器

void push(const value_type& value);    // 在队尾添加拷贝的元素
void push(value_type&& value);         // 在队尾添加移动的元素
template
void emplace(Args&&... args);          // 原地构造新元素,避免额外拷贝
void pop();                            // 移除队首元素
void swap(queue& other) noexcept;      // 与另一个 queue 交换底层容器  队列大小不同也可以交换
  • 复杂度push/pop/emplace/swap 都是常数时间 (O(1)).


五、非成员比较操作符

bool operator==(const queue& lhs, const queue& rhs);
bool operator!=(const queue& lhs, const queue& rhs);
bool operator< (const queue& lhs, const queue& rhs);
bool operator<=(const queue& lhs, const queue& rhs);
bool operator> (const queue& lhs, const queue& rhs);
bool operator>=(const queue& lhs, const queue& rhs);
  • 比较底层容器对应的元素序列。


小结

std::queue 的核心功能就是:

  1. FIFO(先进先出) 的数据结构接口;

  2. 通过 push/emplace 入队,通过 front/pop 出队;

  3. 额外提供容量查询 (empty/size) 与安全交换 (swap),以及常见的比较操作。

你可能感兴趣的:(C++,c++基础知识,开发语言,c++)