C ++ map clear()函数用于删除map容器的所有元素。它清除map并将其大小设置为0。
void clear(); // 在 C++ 11 之前 void clear() noexcept; //从 C++ 11 开始
没有
没有
让我们看一个简单的示例,在清除操作之前和之后计算map的大小。
#include <iostream> #include <map> using namespace std; int main() { map<char, int> mymap = { {'a', 1}, {'b', 2}, {'c', 3}, {'d', 4}, {'e', 5}, }; cout << "进行clear操作前map的初始大小 = " << mymap.size() << endl; mymap.clear(); cout << "进行clear操作后的map的大小 = " << mymap.size() << endl; return 0; }
输出:
进行clear操作前map的初始大小 = 5 进行clear操作后的map的大小 = 0
在上面的示例中,map使用5个元素初始化。因此,map的大小为5,但清除操作后,大小变为0。
让我们看一个简单的示例,以清除map上的元素。
#include <iostream> #include <map> #include <string> using namespace std; int main () { map<int,string> mymap; mymap[1] = "Nikita"; mymap[2] = "Deep"; mymap[3] = "Ashish"; cout << "mymap 包含:\n"; for (map<int,string>::iterator it=mymap.begin(); it!=mymap.end(); ++it) cout << it->first << " : " << it->second << '\n'; mymap.clear(); mymap[4] = "Rajni"; mymap[5] = "Sunil"; cout << "\nmymap 包含:\n"; for (map<int,string>::iterator it=mymap.begin(); it!=mymap.end(); ++it) cout << it->first << " : " << it->second << '\n'; return 0; }
输出:
mymap 包含: 1 : Nikita 2 : Deep 3 : Ashish mymap 包含: 4 : Rajni 5 : Sunil
在上面的示例中,清除map后,我们可以添加新元素而无需初始化。
让我们看一个简单的示例,以清除map上的元素。
#include <iostream> #include <map> #include <string> using namespace std; int main () { int n; map<int,string> m1,m2,m3; m1[1] = "Nikita"; m1[2] = "Deep"; m1[3] = "Ashish"; m2[1] = "Nidhi"; m2[2] = "Priya"; m2[3] = "Gitanjali"; m3[1] = "Rakesh"; m3[2] = "Fruti"; m3[3] = "Kamlesh"; cout << "m1组有以下成员:\n"; for (map<int,string>::iterator it=m1.begin(); it!=m1.end(); ++it) cout << it->first << " : " << it->second << '\n'; cout << "m2组有以下成员:\n"; for (map<int,string>::iterator it=m2.begin(); it!=m2.end(); ++it) cout << it->first << " : " << it->second << '\n'; cout << "m3组有以下成员:\n"; for (map<int,string>::iterator it=m3.begin(); it!=m3.end(); ++it) cout << it->first << " : " << it->second << '\n'; cout<<"\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<<"Invalid option!"; return 0; }
输出:
m1组有以下成员: 1 : Nikita 2 : Deep 3 : Ashish m2组有以下成员: 1 : Nidhi 2 : Priya 3 : Gitanjali m3组有以下成员: 1 : Rakesh 2 : Fruti 3 : Kamlesh 您要删除哪个组? 1. m1 2. m2 3. m3 请输入您的选择: 2 m2组已被清除。
在上面的示例中,map分为三组,根据用户的选择,一组已被删除。
让我们看一个简单的实例:
#include <iostream> #include <map> #include <string> using namespace std; int main() { int n; map<string, int> fruit = { { "Banana", 40 }, { "Apple", 190 }, { "Orange", 120 }, }; cout << "水果桶有以下水果 = \n"; for (map<string,int>::iterator it = fruit.begin(); it != fruit.end(); ++it){ cout << it->first << " : " << it->second << '\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. 水果桶有以下水果 = Apple : 190 Banana : 40 Orange : 120 你要清理你的水果桶吗? 按1表示是,按0表示否: 1 0 种水果在桶里 2. 水果桶有以下水果 = Apple : 190 Banana : 40 Orange : 120 你要清理你的水果桶吗? 按1表示是,按0表示否: 0 3 种水果在桶里
在上面的示例中,一个水果图用三个水果初始化。要求清除map,如果输入0,则水果桶有3个元素;如果输入1,则它将清除水果图,大小变为0。