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;
}