数据库 stl

来源:互联网 发布:音乐随心裁软件 编辑:程序博客网 时间:2024/06/06 00:24

         std map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下std map内部数据的组织,std map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在std map内部所有的数据都是有序的

#include <map>#include <stdio.h>#include <stdlib.h>#include <iostream>#include <string>#include <algorithm>#define file_r(x) freopen(x,"r",stdin);#define file_w(x) freopen(x,"w",stdout);using namespace std;int main(){//file_r("in.data");//file_w("out.data");map<string,string> data;int ncase, n;scanf("%d",&ncase);string order,number,name;map<string, string>::iterator it;while(ncase--){  scanf("%d",&n);  fflush(stdin);  while(n--)  {    cin>>order;    if(!order.compare("INSERT"))    {       cin>>number>>name;       data.insert(pair<string,string>(number,name));    }    else if(!order.compare("SELETE"))    {       cin>>number;       it = data.find(number);       if(it!=data.end())       {         cout<<it->first<<' '<<it->second<<endl;       }      else printf("NO DATA!\n");    }    else if(!order.compare("DELETE"))    {       cin>>number;       it = data.find(number);       if(it!=data.end())       {         data.erase(it);       }       else printf("NO DATA!\n");    }    else if(!order.compare("UPDATA"))    {     cin>>number>>name;     it = data.find(number);     if(it!=data.end())     {       it->second =name;     }     else printf("NO DATA\n");    }  }  for(it=data.begin(); it!=data.end(); it++)  cout<<it->first<<' '<<it->second<<endl;  data.clear();  printf("\n"); } system("pause");return 0;}


原创粉丝点击