我有一个数据结构问题,能帮我看一下吗?
我的要求是在向这个映射中添加新数据项时,将此数据结构初始化为默认值。
请问如何高效地实现此操作?
每次添加条目时,我需要将a1、a2、a3设置为零。
struct a {
int a1;
int a2;
int a3;
};
struct A {
struct a A1;
struct a A2;
};
unordered_map<int, unordered_map<int, struct A>> big_map;
尝试运行以下代码。
unordered_map<int, struct A> inner_map;
big_map[0] = inner_map;
struct A m;
big_map[0][0] = m;
cout << "Values: " << big_map[0][0].A1.a1 << ", " << big_map[0][0].A1.a2 << ", " << big_map[0][0].A1.a3 << endl;
输出:
g++ -std=c++11 -o exe b.cc ./exe 值:0、0、1518395376 ./exe 值:0、0、-210403408 ./exe 值:0、0、-1537331360 ./exe 值:0、0、-915603664
所以a3没有进行默认初始化吗?
unordered_map
仅适用于C++11,所以你是正确的。 - Hatted Rooster