Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作
// maptest.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <map> //包含头文件
#include <string>
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
map<string, int> mapWordRecPrep; /* 定义map类型的变量 */
/* 1 . 用数组方式插入数据 下面举例说明
mapWordRecPrep["the"] = 100;
mapWordRecPrep["so"] = 50;
mapWordRecPrep["so"] = 60; //数组方式出现覆盖现象
map<string, int>::iterator iter;
for(iter = mapWordRecPrep.begin();iter!=mapWordRecPrep.end(); iter++)
{
cout << iter->first << " " << iter->second << endl;
}*/
/* 2. 用insert函数插入value_type数据,下面举例说明
mapWordRecPrep.insert(map<string, int>::value_type ("one", 1));
mapWordRecPrep.insert(map<string, int>::value_type ("two", 2));
mapWordRecPrep.insert(map<string, int>::value_type ("three", 3));
mapWordRecPrep.insert(map<string, int>::value_type ("three", 30)); //value_type方式不出现覆盖现象
map<string, int>::iterator iter;
for(iter = mapWordRecPrep.begin();iter!=mapWordRecPrep.end(); iter++)
{
cout << iter->first << " " << iter->second << endl;
}*/
/* 3. 用pair函数插入数据,下面举例说明
mapWordRecPrep.insert(pair<string, int>("one", 1));
mapWordRecPrep.insert(pair<string, int>("two", 2));
mapWordRecPrep.insert(pair<string, int>("three", 3));
mapWordRecPrep.insert(pair<string, int>("three", 30)); //pair方式不出现覆盖现象
map<string, int>::iterator iter;
for(iter = mapWordRecPrep.begin();iter!=mapWordRecPrep.end(); iter++)
{
cout << iter->first << " " << iter->second << endl;
} */
/* 4. 查找记录
mapWordRecPrep.insert(pair<string, int>("one", 1));
mapWordRecPrep.insert(pair<string, int>("two", 2));
mapWordRecPrep.insert(pair<string, int>("three", 3));
mapWordRecPrep.insert(pair<string, int>("three", 30)); //pair方式不出现覆盖现象
map<string, int>::iterator iter = mapWordRecPrep.find("one");
if (iter != mapWordRecPrep.end())
{
cout << iter->first << " " << iter->second << endl;
}else{
cout << " Not Find " << endl;
}*/
/* 5. 删除记录
mapWordRecPrep.insert(pair<string, int>("one", 1));
mapWordRecPrep.insert(pair<string, int>("two", 2));
mapWordRecPrep.insert(pair<string, int>("three", 3));
map<string, int>::iterator iterV = mapWordRecPrep.find("one");
if (iterV != mapWordRecPrep.end())
{
//mapWordRecPrep.erase(iterV); //迭代器方式删除
}
//int n = mapWordRecPrep.erase("three"); // 关键字方式删除
mapWordRecPrep.clear(); //清空map
map<string, int>::iterator iter;
for(iter = mapWordRecPrep.begin();iter!=mapWordRecPrep.end(); iter++)
{
cout << iter->first << " " << iter->second << endl;
}
*/
/* 判断map是否为空 */
mapWordRecPrep.insert(pair<string, int>("three", 3));
if (mapWordRecPrep.empty() && 0 == mapWordRecPrep.size())
{
printf("mapWordRecPrep is empty!\n\n");
}else{
printf("mapWordRecPrep is not empty!\n\n");
}
return 0;
}