当前位置: 首页 > news >正文

C++容器queue

C++容器queue

  • 定义
  • 构造函数
    • 1、默认构造函数
    • 2、拷贝构造函数
    • 3、移动构造函数
    • 4、指定容器构造函数
  • 常用函数

定义

  • 一种遵循先进先出(FIFO)原则的容器适配器。它基于其他序列容器实现,默认情况下使用deque作为底层容器
  • 队尾进,队首出

构造函数

1、默认构造函数

int main()
{system("chcp 65001");queue<std::u8string> queue1;queue1.push(u8"北京");queue1.push(u8"上海");while (!queue1.empty()){// 返回队首数据cout << "queue1-> " << getStringFromU8string(queue1.front()) << endl;// 移除队首数据queue1.pop();}
}

2、拷贝构造函数

int main()
{system("chcp 65001");queue<std::u8string> queue1;queue1.push(u8"北京");queue1.push(u8"上海");// 拷贝构造函数queue<std::u8string> queue2(queue1);while (!queue2.empty()){cout << "queue2-> " << getStringFromU8string(queue2.front()) << endl;queue2.pop();}while (!queue1.empty()){cout << "queue1-> " << getStringFromU8string(queue1.front()) << endl;queue1.pop();}
}

3、移动构造函数

被移动后,原队列数据清空

int main()
{system("chcp 65001");queue<std::u8string> queue1;queue1.push(u8"北京");queue1.push(u8"上海");// 移动构造函数queue<std::u8string> queue2(std::move(queue1));while (!queue2.empty()){cout << "queue2-> " << getStringFromU8string(queue2.front()) << endl;queue2.pop();}while (!queue1.empty()){cout << "queue1-> " << getStringFromU8string(queue1.front()) << endl;queue1.pop();}
}

4、指定容器构造函数

int main()
{system("chcp 65001");// 指定容器queue<std::u8string, list<std::u8string>> queue1;queue1.push(u8"北京");queue1.push(u8"上海");while (!queue1.empty()){cout << "queue1-> " << getStringFromU8string(queue1.front()) << endl;queue1.pop();}
}

常用函数

函数说明时间复杂度
void push(const T& value);将 value 添加到队列的末尾(队尾)。O(1)
emplace( Args&&... args )元素就地构造,即不执行复制或移动操作O(1)
void pop();移除队列的第一个元素(队首)。注意:此函数不返回被移除的元素。O(1)
T& front();返回对队列第一个元素(队首)的引用。在调用前必须确保队列非空!O(1)
const T& front() const;返回对队首元素的常量引用(用于 const 对象)。O(1)
T& back();返回对队列最后一个元素(队尾)的引用。在调用前必须确保队列非空!O(1)
const T& back() const;返回对队尾元素的常量引用(用于 const 对象)。O(1)
bool empty() const;如果队列为空,返回 true,否则返回 falseO(1)
size_t size() const;返回队列中元素的数量。O(1)
swap( queue& other )交换容器适配器与 other 的内容O(1)
int main()
{system("chcp 65001");queue<std::u8string> queue1;queue1.push(u8"北京");queue1.push(u8"上海");cout << "queue1.front()-> " << getStringFromU8string(queue1.front()) << endl;cout << "queue1.back()-> " << getStringFromU8string(queue1.back()) << endl;cout << "queue1.size()-> " << queue1.size() << endl;cout << "queue1.empty()-> " << boolalpha << queue1.empty() << endl;// 入队queue1.emplace(u8"广州");queue<std::u8string> queue2;queue2.push(u8"北京");queue2.push(u8"上海");// 交换queue1.swap(queue2);while (!queue2.empty()){cout << "queue2-> " << getStringFromU8string(queue2.front()) << endl;queue2.pop();}while (!queue1.empty()){cout << "queue1-> " << getStringFromU8string(queue1.front()) << endl;queue1.pop();}
}
http://www.dtcms.com/a/528173.html

相关文章:

  • 运转灵活小企业网站建设wordpress文章布局
  • 网站网页框架构架图怎么做大理网站开发
  • Cliproxy与Adspower指纹浏览器:跨境业务安全与效率的双重引擎
  • 在线观看免费网站网址开源之家
  • AI降重软件开发方案:基于Python的文本语义重构系统
  • 小杰-自然语言处理(seven)——transformer系列——自注意力(self-attention)
  • 带代码示例的 HTML 标签实操手册
  • fastapi 前端文件配置 python fastapi服务添加前端打包好的静态文件
  • 计算机网络自顶向下方法3——详解分组交换时延、丢包、吞吐量
  • 外贸 网站推广青岛胶南市城乡建设局网站
  • GitHub等平台形成的开源文化正在重塑推荐人
  • webrtc代码走读(六)-QOS-FEC冗余度配置
  • F036 vue+flask中医热性药知识图谱可视化系统vue+flask+echarts+mysql
  • 电脑效能跃升利器 金士顿KVR内存焕新机
  • Bootstrap UI 编辑器
  • MySQL联合查询详解
  • webrtc代码走读(五)-QOS-FEC原理
  • 车载诊断架构 ---DTC快照中DID大小顺序是怎么要求的?
  • Windows 10 下 VS Code 配置 C++ 开发环境(MinGW)
  • 天津低价网站建设怎样做淘宝联盟的网站
  • 福建网站建建设方案太原关键词优化报价
  • 深耕 Rust:核心技术解析、生态实践与高性能开发指南
  • 深入浅出 Tokio 源码:掌握 Rust 异步编程的底层逻辑
  • 北京网站建设管庄1天学会搭建营销网站
  • 基于SEH的异常捕获与MiniDumpWriteDump深度解析
  • C语言练习题
  • Postman应用实战
  • Vue-Loader 深度解析:原理、使用与最佳实践
  • HCIP第二次作业(VRRP/STP/VLAN/Eth-trunk/NAT)
  • 外国设计网站推荐自己学网站建设