首页 > 代码库 > 使用STL map 用 string 做索引 插入删除数据

使用STL map 用 string 做索引 插入删除数据

1、代码

 1 #include <map> 2 #include <string> 3 #include <stdio.h> 4 #include <vector> 5 #include <stdlib.h> 6  7 using namespace std; 8  9 class A10 {11     public:12         int m_iX;13 14     public :15         A();16         A(int i);17         ~A();18 };19 20 A::A()21 {22 }23 24 A::A(int i)25 {26     m_iX = i;27 }28 29 A::~A()30 {31 }32 33 typedef map<string, A *> MapA;34 35 void dumpMap(MapA & xMapA)36 {37     for(MapA::iterator pA = xMapA.begin(); pA != xMapA.end(); pA++)38     {39         printf("index : %s , value : %3d\n", pA->first.c_str(), pA->second->m_iX);40     }41     printf("-----------------------------------\n");42 }43 44 int testOne()45 {46     printf("%s %d %s()\n", __FILE__, __LINE__, __func__);47 48     MapA xMapA;49 50     for(int i = 0; i < 20; i++)51     {52         A * a = new A(i);53         char szIndex[32] = {0};54         snprintf(szIndex, sizeof(szIndex), "%03d", i);55         string strIndex = szIndex;56         xMapA.insert(make_pair(strIndex, a));57     }58     dumpMap(xMapA);59     printf("map size : %d\n", xMapA.size());60     for(int i = 0; i < 20; i+=2)61     {62         A * a = new A(i);63         char szIndex[32] = {0};64         snprintf(szIndex, sizeof(szIndex), "%03d", i);65         string strIndex = szIndex;66         MapA::iterator ppA = xMapA.find(strIndex);67         if(ppA == xMapA.end())68         {69             printf("can not find : [%s]\n", strIndex.c_str());70             continue;71         }72         xMapA.erase(ppA);73     }74     dumpMap(xMapA);75 76     printf("map size : %d\n", xMapA.size());77 78     return 0;79 }80 81 int main(int argc, char * argv[])82 {83     testOne();84     return 0;85 }

2、执行结果

./test-map 1test-map.cpp 46 testOne()index : 000 , value :   0index : 001 , value :   1index : 002 , value :   2index : 003 , value :   3index : 004 , value :   4index : 005 , value :   5index : 006 , value :   6index : 007 , value :   7index : 008 , value :   8index : 009 , value :   9index : 010 , value :  10index : 011 , value :  11index : 012 , value :  12index : 013 , value :  13index : 014 , value :  14index : 015 , value :  15index : 016 , value :  16index : 017 , value :  17index : 018 , value :  18index : 019 , value :  19-----------------------------------hash size : 20index : 001 , value :   1index : 003 , value :   3index : 005 , value :   5index : 007 , value :   7index : 009 , value :   9index : 011 , value :  11index : 013 , value :  13index : 015 , value :  15index : 017 , value :  17index : 019 , value :  19-----------------------------------hash size : 10over

 

使用STL map 用 string 做索引 插入删除数据