C++ STL 中的 list empty() 函数


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

什么是 STL 中的 List?

List 是一种数据结构,它允许在序列中的任何位置进行常数时间插入和删除操作。列表以双向链表的形式实现。列表允许非连续内存分配。与数组、向量和双端队列相比,列表在任何位置插入、提取和移动元素方面表现更好。在 List 中,对元素的直接访问速度较慢,并且 List 类似于 forward_list,但 forward list 对象是单向链表,它们只能向前迭代。

什么是 list::empty()?

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

语法

bool list_name.empty();

此函数不接受任何值。

返回值

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

示例

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

 在线演示

#include <bits/stdc++.h>
using namespace std;
int main() {
   list<int> myList; //to create a list
   //call empty() function to check if list is empty or not
   if (myList.empty())
      cout << "my list is empty\n";
   else
      cout << "my list isn’t empty\n";
   //push_back() is used to insert element in a list
   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

更新于:2020-03-02

4K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告