Deque::empty() 和 deque::size()在C++ STL中的应用

Deque::empty() 和 deque::size()在C++ STL中的应用

Deque或双端队列是一种具有两端扩展和收缩特性的序列容器。它们类似于向量,但是在元素插入和删除在末尾和开头时更有效率。与向量不同,deque中连续存储分配可能无法保证。

deque::empty()

empty()函数用于检查双端队列container是否为空。这是C++标准模板库(STL)中的内置函数。此函数属于<deque> 头文件。这个函数会返回 truefalse ,取决于deque是否为空。

语法:

dequename.empty()

返回值: 如果deque为空,则为True。否则为False。

例子:

输入: mydeque
mydeque.empty();
输出: True

输入: mydeque = 1, 2, 3
mydeque.empty();
输出: False

错误和异常:

  • 参数传递时会出现错误。
  • 不会抛出异常。
// CPP program to demonstrate
// Implementation of empty() function
#include <deque>
#include <iostream>
using namespace std;
 
// Driver Code
int main()
{
    deque<int> mydeque;
    mydeque.push_front(1);
 
    // deque becomes 1
    if (mydeque.empty()) {
        cout << "True";
    }
    else {
        cout << "False";
    }
    return 0;
}  

输出:

False

时间复杂度: O(1)

辅助空间: O(1)

应用: deque::empty()

给定一个整数的双端队列,请找出所有整数的和。

输入:1, 8, 3, 6, 2
输出:20

算法:

1. 检查双端队列是否为空,如果不是,则将前面的元素加到以0初始化的变量中,并弹出前面的元素。

2. 重复此步骤直到双端队列为空。

3. 打印变量的最终值。

// CPP program to demonstrate
// Application of empty() function
#include <deque>
#include <iostream>
using namespace std;
 
// Driver Code
int main()
{
    int sum = 0;
    deque<int> mydeque;
    mydeque.push_back(1);
    mydeque.push_back(8);
    mydeque.push_back(3);
    mydeque.push_back(6);
    mydeque.push_back(2);
    // deque becomes 1, 8, 3, 6, 2
 
    while (!mydeque.empty()) {
        sum = sum + mydeque.front();
        mydeque.pop_front();
    }
    cout << sum;
    return 0;
}  

输出:

20

时间复杂度: O(1)

辅助空间: ** O(1)

deque::size()

size()函数用于返回deque容器的大小或deque容器中的元素数。这是C++标准模板库(STL)中的内置函数。此函数属于 <deque> 头文件。该函数返回一个数字,表示deque在该实例中保存的总元素数。

语法:

dequename.size()

返回值: 容器中元素的数量。

例子:

输入:mydeque = 0、1、2
mydeque.size();
输出:3

输入:mydeque = 0、1、2、3、4、5
mydeque.size();
输出:6

错误和异常:

  • 如果传递参数,则显示错误。
  • 没有异常抛出保证。
// CPP program to demonstrate
// Implementation of size() function
#include <deque>
#include <iostream>
using namespace std;
 
// Driver Code
int main()
{
    int sum = 0;
    deque<int> mydeque;
    mydeque.push_back(1);
    mydeque.push_back(8);
    mydeque.push_back(3);
    mydeque.push_back(6);
    mydeque.push_back(2);
    // deque becomes 1, 8, 3, 6, 2
 
    cout << mydeque.size();
 
    return 0;
}  

输出

5

时间复杂度: O(1)

辅助空间: O(1)

应用:deque::size()

给定一个整数deque,请找出所有整数的总和。

输入:1、8、3、6、2
输出:20

算法:

1、检查deque的大小是否为零,如果不是,则将前面的元素添加到初始值为0的变量中,并弹出前面的元素。

2、重复此步骤直到deque大小变为0。

3、输出变量的最终值。

// CPP program to demonstrate
// Application of size() function
#include <deque>
#include <iostream>
using namespace std;
 
// Driver Code
int main()
{
    int sum = 0;
    deque<int> mydeque;
    mydeque.push_back(1);
    mydeque.push_back(8);
    mydeque.push_back(3);
    mydeque.push_back(6);
    mydeque.push_back(2);
    // Deque becomes 1, 8, 3, 6, 2
 
    while (mydeque.size() > 0) {
        sum = sum + mydeque.front();
        mydeque.pop_front();
    }
    cout << sum;
    return 0;
}  

输出

20

时间复杂度: O(1)

辅助空间: O(1)

注意:

基本上, empty() 函数检查deque的 size() 是否为零。

让我们以表格形式看到区别:

ID Deque::empty() deque::size()
1. 它用于检查deque容器是否为空。 它用于返回deque容器中的元素数。
2. 其语法为:-:empty(); 其语法为:-:size();
3. 其返回类型为布尔类型。 其返回类型为整型。
4. 其复杂度为常数。 其复杂度为常数。
5. 其迭代器有效性不会改变。 其迭代器有效性不会改变。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程