我知道priority_queue的第二个参数是一个容器(默认情况下它是vector
)。但是如果我想使用queue
或list
作为底层容器呢?
struct compare {
bool operator()(int&a,int&b) {
return a > b;
}
};
int main(int argc, char** argv) {
std::priority_queue<int, queue<int> , compare >pq();
return 0;
}
使用pq.push()
时,它不起作用
那么priority_queue
必须使用vector
作为容器吗?或者我如何使用队列呢?
我非常感谢你的帮助。 Thanx很多。
答案 0 :(得分:1)
从此reference:
容器 - 用于存储元素的基础容器的类型。该 容器必须满足 SequenceContainer 的要求,并且其迭代器必须满足RandomAccessIterator的要求。 此外,它必须提供通常的以下功能 语义:
- 前()
- 的push_back()
- pop_back()
标准容器 std :: vector 和 std :: deque 满足这些 要求。