首页 > 代码库 > 使用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 做索引 插入删除数据
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。