Deque或双端队列是序列containers,具有两端扩展和收缩的特性。它们与向量类似,但在末尾和开头插入和删除元素的情况下效率更高。与向量不同,双端队列中可能无法保证连续的存储分配。
deque::empty()
empty()函数用于检查双端队列容器是否为空。这是一个内置函数C++标准模板库(STL)。该函数属于<deque>头文件。该函数或者返回真的或者错误的,取决于双端队列是否为空。
用法:
dequename.empty()
返回:正确,如果双端队列为空。错误,否则
例子:
Input : mydeque mydeque.empty(); Output : True Input : mydeque = 1, 2, 3 mydeque.empty(); Output : False
错误和异常:
- 如果传递参数则显示错误。
- 显示没有异常抛出保证。
CPP
// 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()
给定一个整数双端队列,求所有整数的总和。
Input : 1, 8, 3, 6, 2 Output: 20
算法:
1. 检查双端队列是否为空,如果不为空,则将前面的元素添加到初始化为0的变量中,并弹出前面的元素。
2. 重复此步骤,直到双端队列为空。
3. 打印变量的最终值。
CPP
20
时间复杂度:O(1)
辅助空间:O(1)
deque::size()
size()函数用于返回双端队列容器的大小或双端队列容器中的元素数量。这是 C++ 标准模板库 (STL) 的内置函数。该函数属于<deque>头文件。该函数返回一个数字,表明双端队列在该实例中保存的元素总数。
用法:
dequename.size()
返回:容器中的元素数量。
例子:
Input : mydeque = 0, 1, 2 mydeque.size(); Output : 3 Input : mydeque = 0, 1, 2, 3, 4, 5 mydeque.size(); Output : 6
错误和异常:
- 如果传递参数则显示错误。
- 显示没有异常抛出保证。
CPP
// 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;
}
5
时间复杂度:O(1)
辅助空间:O(1)
应用:deque::size()
给定一个整数双端队列,求所有整数的总和。
Input : 1, 8, 3, 6, 2 Output: 20
算法:
1. 检查双端队列的大小是否为零,如果不为零,则将前面的元素添加到初始化为 0 的变量中,并弹出前面的元素。
2. 重复此步骤,直到双端队列大小变为0。
3. 打印变量的最终值。
CPP
20
时间复杂度:O(1)
辅助空间:O(1)
Note: Basically, empty() function checks if the size() of the deque is zero or not.
让我们看看表格形式的差异 -:
Deque::empty() | deque::size() | |
1. | 它用于检查双端队列容器是否为空。 | 它用于返回双端队列容器中的元素数量。 |
2. |
它的语法是-: empty(); |
它的语法是-: size(); |
3. | 它的返回类型是布尔值。 | 它的返回类型是整数。 |
4. | 它的复杂性是恒定的。 | 它的复杂性是恒定的。 |
5. | 它的迭代器有效性不会改变。 | 它的迭代器有效性不会改变。 |
相关用法
- C++ Deque::front()、deque::back()用法及代码示例
- C++ Deque assign()用法及代码示例
- C++ Deque at()用法及代码示例
- C++ Deque back()用法及代码示例
- C++ Deque begin()用法及代码示例
- C++ Deque cbegin()用法及代码示例
- C++ Deque cend()用法及代码示例
- C++ Deque clear()用法及代码示例
- C++ Deque crbegin()用法及代码示例
- C++ Deque crend()用法及代码示例
- C++ Deque emplace()用法及代码示例
- C++ Deque emplace_front()用法及代码示例
- C++ Deque empty()用法及代码示例
- C++ Deque end()用法及代码示例
- C++ Deque erase()用法及代码示例
- C++ Deque insert()用法及代码示例
- C++ Deque max_size()用法及代码示例
- C++ Deque pop_back()用法及代码示例
- C++ Deque pop_front()用法及代码示例
- C++ Deque push_back()用法及代码示例
- C++ Deque push_front()用法及代码示例
- C++ Deque rbegin()用法及代码示例
- C++ Deque rend()用法及代码示例
- C++ Deque resize()用法及代码示例
- C++ Deque shrink_to_fit()用法及代码示例
注:本文由纯净天空筛选整理自AyushSaxena大神的英文原创作品 Deque::empty() and deque::size() in C++ STL。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。