在 C++ STL 中列出 empty() 函数

在本文中,我们将讨论empty()C++中 list::函数的工作原理、语法和示例。

STL 中的列表是什么?

列表是一种数据结构,它允许按顺序在任何地方进行恒定时间插入和删除。列表被实现为双向链表。列表允许非连续内存分配。与数组、向量和双端队列相比,列表在容器中的任何位置执行更好的插入提取和元素移动。在List中直接访问元素很慢,list类似于forward_list,但前向列表对象是单链表,只能向前迭代。

什么是列表:: empty()?

list::empty()是 C++ STL 中的内置函数,它在头文件中声明。list::empty()检查给定的列表容器是否为空(大小为 0),如果列表为空则返回真值,如果列表不为空则返回假值。

语法

bool list_name.empty();

此函数不接受任何值。

返回值

如果容器大小为零,则此函数返回 true,如果容器大小不为零,则返回 false。

示例

在下面的代码中,我们将调用一个函数empty()来检查列表是否为空,如果列表为空,则我们将使用push_back()函数将元素插入列表以检查结果。

#include <bits/stdc++.h>
using namespace std;
int main() {
   list<int> myList; //创建一个列表
   //调用 empty() 函数检查列表是否为空
   if (myList.empty())
      cout << "my list is empty\n";
   else
      cout << "my list isn’t empty\n";
   //push_back() 用于在列表中插入元素
   myList.push_back(1);
   myList.push_back(2);
   myList.push_back(3);
   myList.push_back(4);
   if (myList.empty())
      cout << "my list is empty\n";
   else
      cout << "my list is not empty\n";
   return 0;
}
输出结果

如果我们运行上面的代码,它将生成以下输出

my list is empty
my list is not empty

在下面的代码中,我们试图将 1-10 的数字相乘,为此 -

  • 首先使用push_back()函数将元素插入列表

  • 使用函数遍历列表直到它不会变空empty()。

  • 打印结果

示例

#include <bits/stdc++.h> 
using namespace std;
int main (){
   list<int> myList;
   int product = 0;
   for (int i=1;i<=10;++i)
   mylist.push_back(i);
   while (!mylist.empty()){
      product *= myList.front();
      myList.pop_front();
   }
   cout << "product of numbers from 1-10 is: " <<product << '\n';
   return 0;
}
输出结果

如果我们运行上面的代码,它将生成以下输出

product of numbers from 1-10 is: 3628800