【发布时间】:2021-10-25 22:44:39
【问题描述】:
我遇到这种情况,我在填充地图后尝试将地图从文件传递到类:
A.h - 一个普通的头文件,我有一个函数原型和一个映射
#include <unordered_map>
func1();
static std::unordered_map<glm::ivec3, Chunk*, KeyHasher> chunks;
A.cpp
#include "A.h"
func1() {
// ...
chunks.insert(pair<glm::ivec3, Chunk*>(pos, chunk));
cout << chunks.size(); // here I have the right size
// ...
}
B.h
#include "A.h"
class B {
public:
my_func();
}
B.cpp
B::my_func() {
// ...
cout << chunks.size(); // size is 0
for (auto& c : chunks) {
// ... do something
}
}
我的问题是,为什么在 B.cpp chunks 地图到达空?我认为如果我使用static 这将解决我的问题。感谢您的宝贵时间!
【问题讨论】:
-
仅供参考 /-
chunks.insert(pair<glm::ivec3, Chunk*>(pos, chunk));可以简化为chunks[pos] = chunk;。
标签: c++ unordered-map