编辑这个页面须要登录或更高权限!
C ++ set clear()函数用于删除set容器的所有元素。清除集合并将其大小转换为0。
void clear(); //C++ 11 之前 void clear() noexcept; //C++ 11 之后
没有
没有
大小线性。
与该容器相关的所有迭代器,引用和指针均无效。
容器已修改。
所有包含的元素均已修改。
此函数永远不会引发异常。
让我们看一个简单的示例,在清除操作之前和之后计算set的大小:
#include <iostream> #include <set> using namespace std; int main() { set<int> myset = {10,20,30,40}; cout << "在清除操作前set集合初始大小 = " << myset.size() << endl; myset.clear(); cout << "在清除操作后set集合大小 = " << myset.size() << endl; return 0; }
输出:
在清除操作前set集合初始大小 = 4 在清除操作后set集合大小 = 0
在上面的示例中,一个集合用4个元素初始化,因此大小为4,但是在清除操作后大小为0。
让我们看一个简单的示例,以清除集合中的元素:
#include <iostream> #include <set> using namespace std; int main () { set<string> myset; myset = {"Nikita","Deep","Aman"}; cout << "myset 包含:\n"; for (set<string>::iterator it=myset.begin(); it!=myset.end(); ++it) cout << *it<< '\n'; myset.clear(); myset= {"Divya", "Raaz"}; cout << "\nmyset 包含:\n"; for (set<string>::iterator it=myset.begin(); it!=myset.end(); ++it) cout << *it<< '\n'; return 0; }
输出:
myset 包含: Aman Deep Nikita myset 包含: Divya Raaz
在上面的示例中,清除设置后,我们可以添加新元素而无需初始化。
让我们看一个简单的示例,以清除集合中的元素:
#include <iostream> #include <set> using namespace std; int main () { int n; set<string> m1,m2,m3; m1 = {"Hello", "World"}; m2 = {"Java", "Program"}; m3 = {"C++", "Coding"}; cout << "m1组有以下成员:\n"; for (set<string>::iterator it=m1.begin(); it!=m1.end(); ++it) cout << *it << ' '; cout << "\n\nm2组有以下成员:\n"; for (set<string>::iterator it=m2.begin(); it!=m2.end(); ++it) cout << *it<< ' '; cout << "\n\nm3组有以下成员:\n"; for (set<string>::iterator it=m3.begin(); it!=m3.end(); ++it) cout << *it<< ' '; cout<<"\n\n您要删除哪个组?\n 1.m1\n 2.m2\n 3.m3\n请输入您的选择: "; cin>>n; if(n==1){ m1.clear(); cout<<"\nm1组已被清除。"; } else if(n==2){ m2.clear(); cout<<"\nm2组已被清除。"; } else if(n==3){ m3.clear(); cout<<"\nm3组已被清除。"; } else cout<<"无效选项!"; return 0; }
输出:
m1组有以下成员: Hello World m2组有以下成员: Java Program m3组有以下成员: C++ Coding 您要删除哪个组? 1.m1 2.m2 3.m3 请输入您的选择: 2 m2组已被清除。
在上面的示例中,设置了三组,并根据用户的选择删除了一组。
让我们看一个简单的实例:
#include <iostream> #include <set> #include <string> using namespace std; int main() { int n; set<string> fruit = {"Banana","Apple","Orange"}; cout << "水果桶有以下水果 = \n"; for (set<string>::iterator it=fruit.begin(); it!=fruit.end(); ++it) cout << *it<< '\n'; cout<<"\n是否要清除水果篮?\n按1表示是,按0表示否。: "; cin>>n; if( n==1){ fruit.clear(); cout<<fruit.size()<<" 水果在桶里 \n"; } else if(n==0) cout <<fruit.size() << " 水果在桶里 \n" ; return 0; }
输出:
水果桶有以下水果 = 菠萝 苹果 香蕉 是否要清除水果篮? 按1表示是,按0表示否。: 1 0 桶里的水果全部被拿走
在上面的示例中,一个水果集用三个水果初始化。要求清除集,如果输入0,则水果桶有3个元素;如果输入1,则将清除水果集,大小变为0。