C ++ empty()函数的作用是:检查集合容器是否为空。如果集合容器为空(size为0),则返回true,否则返回false。
bool empty() const; // 直到 C++ 11 bool empty const noexcept; //从 C++ 11 开始
没有
它返回真如果设定的容器是空的(大小为0),否则返回假。
不变。
没有变化。
容器被访问。
同时访问set的元素是安全的。
此函数永远不会引发异常。
让我们看一个简单的示例,以检查集合是否包含任何元素:
#include <set>
#include <iostream>
using namespace std;
int main()
{
set<int> numbers;
cout << " 最初,numbers.empty (): " << numbers.empty() << "\n";
numbers = {100, 200, 300};
cout << "\n 添加元素之后,numbers.empty(): " << numbers.empty() << "\n";
}输出:
最初,numbers.empty (): 1 添加元素之后,numbers.empty(): 0
在上面的示例中,set的初始大小为0,因此,empty()函数返回1(true),在添加元素后返回0(false)。
让我们看一个简单的示例来检查set是否为空:
#include <iostream>
#include <set>
using namespace std;
int main(void) {
set<char> s;
if (s.empty())
cout << "集合是空的。" << endl;
s = {100};
if (!s.empty())
cout << "集合不是空的。" << endl;
return 0;
}输出:
集合是空的。 集合不是空的。
在上面的实例中,使用了if条件语句。如果set为空,则在添加元素后返回set为空;如果set为空,则在添加元素后返回set非空。
让我们看一个简单的实例:
#include <iostream>
#include <set>
using namespace std;
int main ()
{
set<int> myset;
myset = {100, 200, 300};
while (!myset.empty())
{
cout << *myset.begin()<< '\n';
myset.erase(*myset.begin());
}
return 0;
}输出:
100 200 300
在上面的示例中,它仅在while循环中使用empty()函数并打印set的元素,直到set不为空。
让我们看一个简单的实例:
#include <iostream>
#include <set>
#include <string>
using namespace std;
int main() {
typedef set<int> phoneSet;
int number;
phoneSet phone;
if (phone.empty())
cout << "集合为空。 请插入内容! \n " << endl;
cout<<"输入三组数字: \n";
for(int i =0; i<3; i++)
{
cin>> number; // 获得值
phone.insert(number); //插入数据到set
}
if (!phone.empty())
{
cout<<"\n电话号码列表: \n";
phoneSet::iterator p;
for(p = phone.begin(); p!=phone.end(); p++)
{
cout<<(*p)<<" \n ";
}
}
return 0;
}输出:
集为空。 请插入内容! 输入三组数字: 1111 5555 3333 电话号码列表: 1111 3333 5555
在上面的示例中,该程序首先使用三组数字交互创建电话机,然后检查该电话机是否为空。如果set为空,则显示一条消息,否则,显示set中所有可用的电话号码。