map和set是红黑树的一层封装。不熟悉红黑树的请看上篇文章。
map的增删查改操作
代码示例:
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main()
{
map<string, string> m;
//map插入操作的四种方式
//1,pair<K,V>
m.insert(pair<string, string>("abc", "123"));
//2,make_pair
m.insert(make_pair("dict", "字典"));
m.insert(make_pair("sort", "排序"));
m.insert(make_pair("heap", "堆"));
m.insert(make_pair("tree", "树"));
//3,value_type
m.insert(map<string, string>::value_type("def", "456"));
//4.调用operator[]
m["gh"] = "789";
//map的遍历,使用迭代器遍历
map<string, string>::iterator it = m.begin();
while (it != m.end())
{
cout << it->first << " " << it->second << endl;
it++;
}
//map的删除
while (!m.empty())
{
map<string, string>::iterator it2 = m.begin();
cout << it2->first << " " << it2->second << endl;
//通过迭代器删除
m.erase(it2);
}
//指定key删除
//m.earse("dict");
system("pause");
return 0;
}
set的增删查改
#include <iostream>
#include <set>
//#include "MapTest.h"
using namespace std;
int main()
{
set<int> s;
s.insert(1);
s.insert(2);
s.insert(3);
s.insert(4);
s.insert(5);
//删除指定数据
s.erase(2);
set<int>::iterator it = s.begin();
while (it != s.end())
{
cout << *it << endl;
it++;
}
//while (!s.empty())
//{
// set<int>::iterator it2 = s.begin();
// cout << *it2 << endl;
// 循环每次删除第一个数据
// s.erase(it2);
//}
system("pause");
return 0;
}