100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > C++ map容器-58-map容器大小/交换/插入/删除

C++ map容器-58-map容器大小/交换/插入/删除

时间:2020-09-12 13:53:33

相关推荐

C++ map容器-58-map容器大小/交换/插入/删除

接着学习map容器的常见API操作,依然是大部分前面学习过的,名称相同的API的基本调用测试。本篇学习map容器大小相关API,然后学习容器交换,容器元素插入和删除,清空等操作。

1.map容器大小操作

统计map容器大小的函数原型

#include <iostream>#include <string>#include <map>using namespace std;void test01(){// map容器的构造map<string, int> m;// map容器添加元素m.insert(pair<string, int>("Tom", 18));m.insert(pair<string, int>("Anthony", 23));m.insert(pair<string, int>("Bob", 24));m.insert(pair<string, int>("Sunny", 19));// 统计容器大小cout << "size of Map: " << m.size() << endl;// 容器是否为空cout << "is empty? " << m.empty() << endl;}int main(){test01();system("pause");return 0;}

运行结果

数字0表示非空,数字1表示容器为空

2.map容器交换

函数原型还是swap(map)

#include <iostream>#include <string>#include <map>using namespace std;void printMap(map<string, int>& m){for(map<string, int> ::iterator it = m.begin(); it != m.end(); it++){cout << "Key= " << (*it).first << " ,Value= " << (*it).second << endl;}}void test01(){// map容器的构造map<string, int> m;// map容器添加元素m.insert(pair<string, int>("Tom", 18));m.insert(pair<string, int>("Anthony", 23));m.insert(pair<string, int>("Bob", 24));m.insert(pair<string, int>("Sunny", 19));map<string, int> m1;m1.insert(pair<string, int>("aaaa", 243254));m1.insert(pair<string, int>("bbbb", 10000));cout << "=======m=========== " << endl;printMap(m);cout << "========m1========== " << endl;printMap(m1);cout << "================== " << endl;// 容器交换m.swap(m1);cout << "=======m=========== " << endl;printMap(m);cout << "========m1========== " << endl;printMap(m1);}int main(){test01();system("pause");return 0;}

运行结果

3.map容器插入和删除

相关插入和删除函数原型

插入这里不重复,就是前面一直在使用的insert()函数。

#include <iostream>#include <string>#include <map>using namespace std;void printMap(map<string, int>& m){for(map<string, int> ::iterator it = m.begin(); it != m.end(); it++){cout << "Key= " << (*it).first << " ,Value= " << (*it).second << endl;}}void test01(){// map容器的构造map<string, int> m;// map容器添加元素m.insert(pair<string, int>("Tom", 18));m.insert(pair<string, int>("Anthony", 23));m.insert(pair<string, int>("Bob", 24));m.insert(pair<string, int>("Sunny", 19));printMap(m);//删除迭代器所指的元素map<string, int>::iterator pos = m.begin();m.erase(pos);cout << "after erase pos=======================" << endl;printMap(m);//删除容器中值为Sunnym.erase("Sunny");cout << "after erase key=======================" << endl;printMap(m);// 清空容器m.clear();cout << "is Empty? " <<m.empty() << endl;}int main(){test01();system("pause");return 0;}

测试结果

4.map容器查找和统计

接着来看看查找和统计的API

#include <iostream>#include <string>#include <map>using namespace std;void printMap(map<string, int>& m){for(map<string, int> ::iterator it = m.begin(); it != m.end(); it++){cout << "Key= " << (*it).first << " ,Value= " << (*it).second << endl;}}void test01(){// map容器的构造map<string, int> m;// map容器添加元素m.insert(pair<string, int>("Tom", 18));m.insert(pair<string, int>("Anthony", 23));m.insert(pair<string, int>("Bob", 24));m.insert(pair<string, int>("Sunny", 19));printMap(m);// 查找map<string, int>::iterator pos = m.find("Anthony");if(pos != m.end()){cout << "find result: " << (*pos).first << " = " << (*pos).second << endl;}else{cout << "not find"<< endl;}// 统计,要不是返回结果0就是1cout << "count of Sunny:"<< m.count("Sunny") << endl;}int main(){test01();system("pause");return 0;}

测试结果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。