具有键作为用户定义数据类型的C ++映射

映射是一种以键和值对形式存储信息的数据结构。在C ++中,映射在STL(标准模板库)中定义,并以有序形式存储键。

定义映射的语法-

map<key_type , value_type> map_name;

映射的这两个数据中任何一个的数据类型都可以是任何数据类型。我们可以在映射中将任何主要数据类型或派生数据类型作为键或值数据类型。

我们可以使用任何数据类型作为映射键的数据类型。甚至可以将用户定义的数据类型用作键数据类型。

现在,我们将创建一个定义新数据类型的数据结构。并将其用作映射的键。

语法

struct key{
   float f;
}

在创建的映射中使用此用户定义的数据类型,程序员可以从映射中获取更多信息。结构中可以包含任意数量的数据,在这种情况下,即使要考虑数组和其他数据结构也是有效的。

示例

#include <bits/stdc++.h>
using namespace std;
struct kdata {
   float id;
};
bool operator<(const kdata& t1, const kdata& t2){
   return (t1.id < t2.id);
}
int main(){
   kdata t1 = { 4.5 }, t2 = { 12.3 }, t3 = { 67.8 }, t4 = { 65.2 };
   map<kdata, char> maps;
   maps[t1] = a;
   maps[t2] = h;
   maps[t3] = m;
   maps[t4] = q;
   cout<<"The map data is ";
   for (auto x : maps)
      cout << x.first.id << " > " << x.second << endl;
   return 0;
}

输出结果

The map data is
4.5 > a
12.3 > h
67.8 > m
65.2 > q