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

wordpress数据百度seo网站在线诊断

wordpress数据,百度seo网站在线诊断,ASP.NET动态网站开发教程,男女做暖网站是什么意思封装: std::queue 在底层容器的基础上 提供了封装。默认情况下,std::queue 使用 std::deque 作为其底层容器,但也可以配置为使用 std::list 或 其他符合要求的容器 时间复杂度: 入队和出队操作 通常是 常数时间复杂度&#xff08…

封装: std::queue 在底层容器的基础上 提供了封装。默认情况下,std::queue 使用 std::deque 作为其底层容器,但也可以配置为使用 std::list 或 其他符合要求的容器

时间复杂度: 入队和出队操作 通常是 常数时间复杂度(O(1)),这意味着 操作的时间不会随着队列大小的增加 而显著增加
空间复杂度: 由于 std::queue 使用底层容器来存储元素,其空间复杂度 取决于 所使用的底层容器

例如,使用 std::deque 时,空间复杂度通常是线性的(O(n)),其中 n 是队列中元素的数量

1、实现

template <typename T, typename Container = std::deque<T>>
class MyQueue {
private:Container data; // 使用底层容器存储队列的元素public:// 将元素添加到队尾void push(const T& value) {data.push_back(value);}// 移除队头元素void pop() {if (!empty()) {data.pop_front();} else {throw std::runtime_error("Queue is empty.");}}// 访问队头元素的引用T& front() {if (!empty()) {return data.front();} else {throw std::runtime_error("Queue is empty.");}}// 访问队尾元素的引用T& back() {if (!empty()) {return data.back();} else {throw std::runtime_error("Queue is empty.");}}// 检查队列是否为空bool empty() const {return data.empty();}// 返回队列的大小size_t size() const {return data.size();}
};

2、常见面试题

1、阻塞队列 在队列为空时 会阻塞出队操作,在队列满时 会阻塞入队操作。非阻塞队列 不会阻塞线程;如果 操作不能立即进行,则会失败 或 返回特定值

2、循环队列的实现
循环队列 可以使用 一个固定大小的数组 和 两个指针(头指针和尾指针,前闭后闭)来实现。当尾指针到达数组的末尾时,它会循环回到数组的开始位置。循环队列的优势 在于它可以重复使用空间,减少了 因为扩容而带来的性能开销

所有 + 的地方 要加上 % size
有两个重要条件:
队列为空:当 front == -1
队列已满:当 (rear + 1) % size == front

#include <iostream>
using namespace std;class CircularQueue {
private:int *queue;    // 动态数组存储队列元素int front;     // 指向队列头部的索引int rear;      // 指向队列尾部的索引int size;      // 队列容量public:// 构造函数,初始化队列CircularQueue(int maxSize) {size = maxSize;queue = new int[size];front = -1;rear = -1;}// 析构函数,释放动态内存~CircularQueue() {delete[] queue;}// 检查队列是否为空bool isEmpty() {return (front == -1);}// 检查队列是否已满bool isFull() {return ((rear + 1) % size == front);}// 向队列中插入元素void enqueue(int value) {if (isFull()) {cout << "队列已满,无法插入元素 " << value << endl;return;}if (isEmpty()) {front = 0; // 如果队列为空,则插入第一个元素时将 front 指向 0}rear = (rear + 1) % size; // 更新 rear 为下一个位置(循环)queue[rear] = value;cout << "插入元素: " << value << endl;}// 从队列中删除元素int dequeue() {if (isEmpty()) {cout << "队列为空,无法删除元素" << endl;return -1;}int value = queue[front];if (front == rear) {// 队列中只有一个元素,删除后队列为空front = -1;rear = -1;} else {// 更新 front 为下一个位置(循环)front = (front + 1) % size;}cout << "删除元素: " << value << endl;return value;}// 获取队列头部的元素int peekFront() {if (isEmpty()) {cout << "队列为空,无法获取头部元素" << endl;return -1;}return queue[front];}// 获取队列尾部的元素int peekRear() {if (isEmpty()) {cout << "队列为空,无法获取尾部元素" << endl;return -1;}return queue[rear];}// 显示队列中的元素void displayQueue() {if (isEmpty()) {cout << "队列为空" << endl;return;}cout << "队列元素: ";int i = front;while (true) {cout << queue[i] << " ";if (i == rear) {break;}i = (i + 1) % size;}cout << endl;}
};

https://kamacoder.com/ 手写简单版本STL,内容在此基础上整理补充

http://www.hrbkazy.com/news/20048.html

相关文章:

  • 网站策划师招聘网站怎么注册
  • 深圳有哪些做网站公司好5g网络优化
  • 建设一个境外网站seo站长工具查询
  • 小型手机网站建设推荐在线培训考试系统
  • kaalus wordpress唐山网站建设方案优化
  • 通过alt让搜索引擎了解该图片信息很多是网站有问题吗长沙网站推广有哪些啊
  • 妇科医院网站建设怎么做学seo建网站
  • 无网站如何做淘宝客台州seo
  • 乐清seoseo赚钱暴利
  • 外贸型网站开发长沙靠谱的关键词优化
  • 百度网站地图seo优化软件
  • 企业网站推广的主要方法济南头条今日新闻
  • axure做网站的效果怎么网上推广自己的产品
  • 南山做网站公司微信软文案例
  • 中国协会网站建设方案营销活动推广方案
  • 宁波网站建设工作室下载百度2024最新版
  • 凤岗做网站网站建设多少钱
  • p2p网站制作seo值怎么提高
  • 云南建站济南网站制作
  • 电子商务网站建设的期中考试seo研究中心官网
  • 中医药文化建设网站自动外链工具
  • 合肥高端网站b2b外链代发
  • 用双语网站做seo会不会百度账号怎么改名字
  • 现在石家庄做网站的公司有哪几家免费推广网站大全
  • 0元建站平台如何推广品牌
  • 网站建设与什么专业有关网络推广网上营销
  • 做网站要会写什么球队世界排名榜
  • 文本中设置网站超链接怎么做seo自学网视频教程
  • 用php做的博客网站有哪些百度词条
  • 厦门免费网站建设八大营销模式有哪几种