c++中的hash_地图 有关问题
c++中的hash_map 问题
现在程序用到c++的hash_map结构,key现在用的是string,这样是没什么问题,但是,100m的文件,差不多能占300M的内存,差距太大了。就将key改成了const char*,这样内存是差不多了。可是在入数据的时候,发现数据丢失了。入了16w,结果.size了一下,才14w。我想知道这是为什么,以及怎么解决?当然,其他能解决内存问题的存入方法也可以。
------解决思路----------------------
上代码。怀疑是内存管理的问题。
------解决思路----------------------
key用char*,要自己写比较函数
------解决思路----------------------
你的char*指向那里?别有有些内存释放了吧?重复分配的内存地址可能是相同的。上代码吧
现在程序用到c++的hash_map结构,key现在用的是string,这样是没什么问题,但是,100m的文件,差不多能占300M的内存,差距太大了。就将key改成了const char*,这样内存是差不多了。可是在入数据的时候,发现数据丢失了。入了16w,结果.size了一下,才14w。我想知道这是为什么,以及怎么解决?当然,其他能解决内存问题的存入方法也可以。
------解决思路----------------------
上代码。怀疑是内存管理的问题。
------解决思路----------------------
key用char*,要自己写比较函数
------解决思路----------------------
你的char*指向那里?别有有些内存释放了吧?重复分配的内存地址可能是相同的。上代码吧