简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!
优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀
人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
本篇目的:C++之容器std::queue类empty、size、front、back、push、emplace、pop、swap应用总结。
std::queue是C++ STL(标准模板库)中提供的容器类,用于实现队列数据结构。下面是对std::queue类中一些常用的成员函数的作用解释,不包含代码示例:
empty(): 返回一个布尔值,表示队列是否为空。如果队列为空,则返回true;否则,返回false。
size(): 返回一个整数值,表示队列中元素的个数。
front(): 返回队列头部元素的引用,但不删除该元素。如果队列为空,调用该函数将导致未定义的行为。
back(): 返回队列尾部元素的引用,但不删除该元素。如果队列为空,调用该函数将导致未定义的行为。
push(): 接收一个元素,并将其添加到队列的尾部。新元素被添加后,成为新的尾部元素。
emplace(): 类似于push()函数,但是可以在队列中构造元素,而无需创建临时对象。
pop(): 移除队列头部的元素,但不返回它的值。如果队列为空,调用该函数将导致未定义的行为。
swap(): 将当前的队列与另一个队列进行交换。交换后,两个队列中的元素也会互相交换。
这些成员函数允许您操作队列,从而实现先进先出(FIFO)的数据结构。
#include
#include
int main() {
std::queue<int> myQueue;
if (myQueue.empty()) {
std::cout << "Queue is empty!" << std::endl;
} else {
std::cout << "Queue is not empty." << std::endl;
}
return 0;
}
注意:判断队列是否为空,返回一个布尔值。
#include
#include
int main() {
std::queue<int> myQueue;
myQueue.push(10);
myQueue.push(20);
myQueue.push(30);
std::cout << "Queue size: " << myQueue.size() << std::endl;
return 0;
}
注意:返回队列中元素的数量。
#include
#include
int main() {
std::queue<int> myQueue;
myQueue.push(10);
myQueue.push(20);
int& firstElement = myQueue.front();
std::cout << "First element: " << firstElement << std::endl;
return 0;
}
注意:返回队列的第一个元素的引用。
#include
#include
int main() {
std::queue<int> myQueue;
myQueue.push(10);
myQueue.push(20);
int& lastElement = myQueue.back();
std::cout << "Last element: " << lastElement << std::endl;
return 0;
}
注意:返回队列的最后一个元素的引用。
#include
#include
int main() {
std::queue<int> myQueue;
myQueue.push(10);
myQueue.push(20);
std::cout << "Queue size: " << myQueue.size() << std::endl;
return 0;
}
注意:将元素添加到队列的末尾。
#include
#include
#include
int main() {
std::queue<std::tuple<int, double, char>> myQueue;
myQueue.emplace(1, 2.3, 'a');
std::cout << "Queue size: " << myQueue.size() << std::endl;
return 0;
}
注意:构造函数的参数直接在队列的末尾生成一个新元素。
#include
#include
int main() {
std::queue<int> myQueue;
myQueue.push(10);
myQueue.push(20);
myQueue.pop();
std::cout << "New front element: " << myQueue.front() << std::endl;
return 0;
}
注意:移除队列的第一个元素。
#include
#include
int main() {
std::queue<int> firstQueue;
std::queue<int> secondQueue;
firstQueue.push(10);
secondQueue.push(20);
std::cout << "First queue front element: " << firstQueue.front() << std::endl;
std::cout << "Second queue front element: " << secondQueue.front() << std::endl;
firstQueue.swap(secondQueue);
std::cout << "After swapping:" << std::endl;
std::cout << "First queue front element: " << firstQueue.front() << std::endl;
std::cout << "Second queue front element: " << secondQueue.front() << std::endl;
return 0;
}
注意:交换两个队列的元素。