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。