tro*_*ong 2 c++ constructor unordered-map
我有一节课:
class C {
public:
C(): _a(a++){}
private:
static int a;
int _a;
};
int C::a = 0;
C c = C(); // c._a is 0
C d = C(); // d._a is 1
C e = C(); // e._a is 2
Run Code Online (Sandbox Code Playgroud)
这符合我的预期:a和obj._a递增1.但是如果我将c,d和e分配给unordered_map,它们会递增2:
unordered_map<int, C> map;
C c = C(); // c._a is 0
map[0] = c;
C d = C(); // d._a is 2
map[1] = d;
C e = C(); // e._a is 4
map[2] = e;
Run Code Online (Sandbox Code Playgroud)
如何将c,d和e分配给map并仍使static int增加1?