1、标准库的map类型
2、插入数据
#include <map>
#include <string>
#include <iostream>
using namespace std;
int main() {
map<string, int> mapTest;
// 插入到map容器内部的元素是默认按照key从小到大来排序
// key类型一定要重载小于号<运算符
mapTest["aaa"] = 100; // int& operator[](const string& index);
mapTest["eee"] = 500; // 可以重新赋值,但是下面的用insert方法就不能重新赋值
mapTest.insert(map<string, int>::value_type("bbb", 200));
mapTest.insert(map<string, int>::value_type("bbb", 2000));
mapTest.insert(pair<string, int>("ccc", 300));
mapTest.insert(pair<string, int>("ccc", 3000));
mapTest.insert(make_pair("ddd", 400));
mapTest.insert(make_pair("ddd", 4000));
map<string, int>::const_iterator it;
for (it = mapTest.begin(); it != mapTest.end(); ++it)
{
cout << it->first << " " << it->second << endl;
}
return 0;
}
// 输出
aaa 100
bbb 200
ccc 300
ddd 400
eee 500
3、查找与修改
#include <map>
#include <string>
#include <iostream>
using namespace std;
int main() {
map<string, int> mapTest;
mapTest["aaa"] = 100; // int& operator[](const string& index);
mapTest.insert(map<string, int>::value_type("bbb", 200));
mapTest.insert(pair<string, int>("ccc", 300));
mapTest.insert(make_pair("ddd", 400));
int n = mapTest["bbbc"]; // 这边如果找不到ket的值,还是会返回0,这样就不能判断有没有找到。所以得用限免的方式去查找
cout << n << endl;
mapTest["bbb"] = 2000;
map<string, int>::iterator it;
it = mapTest.find("ccc");
if (it != mapTest.end())
{
it->second = 3000;
}
else
{
cout << "not found" << endl;
}
// map<string, int>::const_iterator it;
for (it = mapTest.begin(); it != mapTest.end(); ++it)
{
cout << it->first << " " << it->second << endl;
}
return 0;
}
// 输出
0
aaa 100
bbb 2000
bbbc 0
ccc 3000
ddd 400
4、删除
#include <map>
#include <string>
#include <iostream>
using namespace std;
int main() {
map<string, int> mapTest;
// 插入到map容器内部的元素是默认按照key从小到大来排序
// key类型一定要重载小于号<运算符
mapTest["aaa"] = 100; // int& operator[](const string& index);
mapTest.insert(map<string, int>::value_type("bbb", 200));
mapTest.insert(pair<string, int>("ccc", 300));
mapTest.insert(make_pair("ddd", 400));
mapTest.erase("bbb");
map<string, int>::const_iterator it;
it = mapTest.find("ccc");
if (it != mapTest.end())
{
mapTest.erase(it);
}
for (it = mapTest.begin(); it != mapTest.end(); ++it)
{
cout << it->first << " " << it->second << endl;
}
return 0;
}
// 输出
aaa 100
ddd 400