2 guang nate Guang_Nate 于 2017.01.10 09:28 提问

急急急 C++中在头文件中如何去定义一个map,然后又如何在源文件(my.cpp)中引用呢

想在头文件(my.h)中利用一个map类型建立一个std::map 《string,uint> my_Map

并定义my_Map["one"] = 1;
my_Map["two"] = 2;
my_Map["three"] = 3;
my_Map["four"] = 1;

并且在cpp(my.cpp) 文件中#include “”my.h“”

在compile的过程中报出
error: 'my_Map' does not name a type my_Map["one"] = 1;
error: 'my_Map' does not name a type my_Map["two"] = 1;
error: 'my_Map' does not name a type my_Map["three"] = 1;
error: 'my_Map' does not name a type my_Map["four"] = 1;

求教大神这是什么原因,是my_Map定义出了什么问题吗?在头文件中如何去定义一个map,然后又如何在源文件(my.cpp)中引用呢?求大神赐教

1个回答

oyljerry
oyljerry   Ds   Rxr 2017.01.10 09:48
已采纳

头文件中只是申明,或者常量初始化。
cpp中才能赋值等
http://stackoverflow.com/questions/23504339/creating-and-populating-a-map-in-a-header-file-in-c

Guang_Nate
Guang_Nate 在头文件中定义好map 并对其插入一些key-value键值对,之后不在源文件cpp中修改了,这样处理可以吗
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于定义一个结构体可以被其他的源文件使用
第一步:首先建立一个头文件  (在KEIL中,或许一个头文件中有其他的定义等,为防止该在包含头文件时,编译产生了重复定义的现象,所以我在这专门定义了一个头文件用来存放自定义的结构体) 第二步:在这个头文件中定义结构体 第三步:在其他使用到的源文件中包含该头文件  在含有main的源文件中,若要使用PM_Sensor_Data这个结构体变量,声明如下:
extern实现源文件(头文件)之间变量和函数的引用
在一个C工程中,会有很多源文件,因此当在一个源文件中调用另一个源文件中的函数或者使用另一个源文件中定义的变量和结构体时,如何保证函数和变量的可见性呢? 1.结构体和变量的调用 下面是看到的关于结构体中的使用:http://blog.csdn.net/Fortware/article/details/44208309?locationNum=10 总结下来就是:包含头文件之后,定义
C 语言不同C文件中 enum 枚举变量的使用方法
变量别放在头文件里。由于头文件可能被多模快引用,就可能出现重复定义。 作为全局变量,在一个模快中定义一次,而在其他模快中用“extern”说明之。 按LZ情形,应该出现的是“未定义”的错误,因为“extern”不提供实质意义上的变量物理空间的分配。 解决的方法是: 头文件中放置 enum abc {a,b,c}; C文件中放置 enum abc cc; /
如何引用一个已经定义过的全局变量 与 全局变量可不可以定义在可被多个.C文件包含的头文件中
如何引用一个已经定义过的全局变量 与 全局变量可不可以定义在可被多个.C文件包含的头文件中
全局变量可不可以定义在可被多个.C文件包含的头文件中?
全局变量可不可以定义在可被多个.C文件包含的头文件中? 原文链接  http://hi.baidu.com/fukai5/blog/item/dbf102fd705836e7fd037ff2.html 最近在学习uC/OS操作系统,对其中定义的全局变量产生了好奇。作者
如何在c语言中源文件调用另一个源文件的函数
在源文件A1.c中调用A2.c 中的函数 有两种方法:   1.在A2.c中有完整的函数定义,在A1.c中添加一下要用到的函数原型(声明)就可以了,例如: 在A2.c中:有函数void A2(){…}; 在A1.c中:在文件前头增加一行:void A2();就可以了      2.把A2.c中完整定义的函数的原型,写到一个A2.h文件中,然后在A1.c的文件头增加#include “A2
c源文件中要包含自己的头文件
引言:             我们经常在c工程中发现,源文件中要包含自己的头文件。一直以来,都不知道为什么这样做。现在,我知道了。 以前的认知:  我认为,.c文件没有必要包含自己的.h文件。.h文件包含.c文件中定义的函数和全局变量的声明,.h文件就是.c文件提供的对外接口文件。既然.h文件就是.c文件提供的对外接口文件,那么.c文件就没必要包含自己的.h文件了(.h文件是对外提供用
全局变量在头文件中“定义”
看着标题,定义上面加了一个引号,这个得注意了。怎么j
C语言中,头文件的作用,头文件和源文件的关系(转)
简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段  2.词法与语法分析阶段  3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件) 4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件,当然,最后还可以用ob
keil 中如何调用其他文件的函数
今天有点小郁闷,搞了好久也没有真正搞通i2c的含义,但是也还是学到了很多东西的哦,在keil中肯定会包含有很多文件的哦,那怎么样在一个C文件中调用另一个的函数呢?呵呵!        建立一个和这个C文件同名的H文件,把这个C文件中的函数都包含到这个H文件中就ok! 例如:有这样一个serial.C文件: /******************************************