- 论坛徽章:
- 0
|
#include<iostream>
#include<map>
#include<utility>
using std::map;
using std::pair;
typedef struct alertInfo{
double alertUp;
double alertDown;
alertInfo(double up,double down){
alertUp = up;
alertDown = down;
};
}alert;
alert st(240,200); //实例化一个结构体对象
map<int,alert> alert_map; //本意:key为int类型,alert是结构体类型 从int到结构体的映射,即想实现在map中存储结构体数据......
int main()
{
alert_map.insert(pair<int,alert>(1,st));
std::cout << "alert.alertUp is equal to :" << st.alertDown << std::endl;
std::cout << "alert.alertDown is equal to :" << st.alertUp << std::endl;
return 0;
}
这个程序就是简单的说明一下使用map来使用结构体的,只是把你的程序稍微修改了一点。如果想要多个key对应多个结构体,那么可以创建结构体数组来实现,或者是利用vector实现。
LZ的问题就是没有创建过任何结构体变量,map中的alert是结构体指针类型,而后面居然用到alert(240,200)貌似想对结构体实例化,这显然是不对的。最主要的问题是,楼主没有创建任何共0-9各个key值对应的结构体变量。那么又有什么与key值对应呢?
浅薄想法,希望多指正。 |
|