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中所有可用的电话号码。