C++ queue队列的使用
2020 年 05 月 08 日 281 292 字 暂无评论

C++中调用头文件#include <queue>可以使用队列类。

1.push方法

  • 在队列尾部插入一个元素
#include <iostream>
#include <queue>

using namespace std;

int main()
{
    queue <int> number;
    number.push(1);
    number.push(23);
    cout << number.front() << endl;
    cout << number.back() << endl;
    return 0;
}
  • 定义一个int型队列,分别插入数字1、23

2.pop方法

  • 将队列中最靠前位置的元素拿掉(先进先出)。注意是无返回值的void函数。
#include <iostream>
#include <queue>

using namespace std;

int main()
{
    queue <int> number;
    number.push(1);
    number.push(23);
    number.pop();
    cout << number.front() << endl;
    
return 0;
}
  • 输出为23,因为第一个1被pop出去了。

3.size方法

  • 返回队列中元素的个数,返回值类型为unsigned int
#include <iostream>
#include <queue>

using namespace std;

int main()
{
    queue <int> number;
    number.push(1);
    number.push(23);
cout << number.front() << endl;
cout << number.size() << endl;
return 0;
}
  • 输出为第一个元素1和元素个数2

4.empty方法

  • 判断队列是否为空,如果为空返回true。
#include <iostream>
#include <queue>

using namespace std;

int main()
{
    queue <int> number;
    number.push(1);
    number.push(23);
    
cout << number.front() << endl;
cout << number.empty() << endl;
return 0;
}
  • 不空返回false

5.front方法

  • 返回队列中第一个进入的元素,即第一个元素,并不会删除元素
#include <iostream>
#include <queue>

using namespace std;

int main()
{
    queue <int> number;
    number.push(1);
    number.push(23);
    
cout << number.front() << endl;
return 0;
}
  • 返回第一个元素1

6.back方法

  • 与front相反返回队列中最后进入的元素,即最后一个元素,不会删除元素
#include <iostream>
#include <queue>

using namespace std;

int main()
{
    queue <int> number;
    number.push(1);
    number.push(23);
    
cout << number.back() << endl;
return 0;
}
  • 输出第二个元素23

7.emplace方法

  • 将元素放置到队列的尾部,作用和push一样
#include <iostream>
#include <queue>

using namespace std;

int main()
{
    queue <int> number;
    number.push(1);
    number.push(23);
    number.emplace(3);
    cout << number.back() << endl;
    return 0;
}
  • 输出为3

8.swap方法

  • 交换队列1和队列2中的元素,方法和stack中一样,并不会真正使用拷贝形式进行交换,只是交换底层的数据结构
#include <iostream>
#include <queue>

using namespace std;

int main()
{
    queue <int> number1;
    queue <int> number2;
    number1.push(1);
    number1.push(23);
    number1.emplace(3);
number2.push(3);
number2.push(2);

number1.swap(number2);
cout << number1.back() << endl;
return 0;
}
  • 输出结果由原来的3变为2,即两个队列内容交换了位置

版权属于:zfh

本文链接:http://zfhblog.com/index.php/archives/26/



评论已关闭