加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

c++使用map做全局变量

(2012-05-20 01:05:14)
标签:

杂谈

分类: 技术
毕设修改一个多文件的程序的时候,增加了一个map的全局变量。

增加的办法就是在其中一个.cc文件里 写了句 map<long, vector<mynode> > table,其它的文件里利用头文件做了extern声明。编译能通过,但运行时,往map里添加元素时总是错。

我按照上述机制,写了几个简单的.cpp文件,运行起来并没有问题,能往map里添加元素。

我又想到是不是map的问题。所以就在有map的地方也接着设了相应的pair和vector变量。而且pair和vector在定义时就做了赋值。在运行时发现,可以对它们做相应操作,只是我定义时的赋值是没有用的。

这让我怀疑里map的初始化问题。于是我在使用map之前加了一句table.clear()。神奇的是,这个问题就此解决了。之后可以往map里顺利插入元素了。

难道这意味着,map声明时是没有自己初始化的?所以没有分配内存或者任意分配内存(内存里是其它数据)。

本来还打算试试把map声明为static了,既然解决了就先不试了。

0

阅读 收藏 喜欢 打印举报/Report
前一篇:test and set
后一篇:快毕业了~
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有