Benjamin

静以修身,俭以养德,非澹薄无以明志,非宁静无以致远。
随笔 - 386, 文章 - 0, 评论 - 196, 引用 - 0
数据加载中……

结构体在map中的应用

map是一种关联式容器,它有一个很常用的功能:提供key-value的存储和查找功能。结构体在C++中和类相似,它的数据成员和成员方法默认是
public。下面这段示例代码演示了如何在MAP中使用结构体,并实现查找和遍历功能。
typedef struct size{
  int width;
  int Heigh;
 }simple;

 typedef struct cc{
  simple t;
  char* str1;
  char* str2;
  int a;

 }kk;

 using namespace std;

 //typedef map <int,kk,less<int>> MyMap;
 typedef map<int,kk,less<int>> MyMap_Source;
 MyMap_Source MyMap;
 MyMap_Source::iterator theIterator;

 kk a = {{12,23},"what","are",1};
 kk b = {{12,24},"what","are",3};
 kk c = {{12,25},"what","are",5};

 int Index = 0;
 MyMap[Index] = a;
 MyMap[Index + 1] = b;
 MyMap[Index + 2] = c;//这里用insert不行,而且[]只能用在插入操作,其他的操作不能用,不可以用在遍历中

 theIterator = MyMap.find(2);//查找
 if (theIterator != MyMap.end())
 {
   kk ad = theIterator->second;
   simple d = ad.t;
 }
当然我们也可以用迭代器来遍历map容器
for(theIterator = MyMap.begin(); theIterator != MyMap.end(); ++theIterator)
{
kk temp = theIterator->second;

}




posted on 2009-03-02 23:49 Benjamin 阅读(5661) 评论(0)  编辑 收藏 引用 所属分类: 泛型编程


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理