gpt4 book ai didi

c++ - 如果使用 vector 作为容器,如何弹出队列

转载 作者:行者123 更新时间:2023-12-01 15:07:57 25 4
gpt4 key购买 nike

我正在STL中学习队列,然后考虑尝试其他可用于实现队列的容器。

所以我使用vector作为容器,但是在MSVS中使用pop函数

queue<int, vector<int>> q;
q.push(1);
q.push(2);
q.pop();
cout << q.front() << " ";

我遇到错误
C2039'pop_front'不是'std::vector>的成员

C2056非法表达式(它指向队列头文件中的pop函数)

那么当我们更换容器时还有其他方法可以弹出一个元素吗?

最佳答案

std::queue要求基础容器为SequenceContainer,并提供

  • back()
  • front()
  • push_back()
  • pop_front()

  • 成员函数。 std::vector没有 pop_front,因为它是O(N)操作,因此您不能将其用作基础容器。您或者需要使用自己的具有这些功能的 vector 类,或者切换到使用具有这些功能的其他容器。

    关于c++ - 如果使用 vector 作为容器,如何弹出队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61482205/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com