- 论坛徽章:
- 5
|
hellioncu 发表于 2015-11-11 16:26 ![]()
1、应该是在m_v[3]=v_tmp的时候
2、不要另外一个vector了,直接修改map中保存的那个。最后map释放前自 ...
先说第二个,map中存放的是vector指针,比如map中key为2的value为vec_ptr1,现在更新为vec_ptr2, 当map[2]=vec_ptr2后,这个vec_ptr1需要显示delete吗?
对于第二个,处于好奇写了一个小程序,想测试何时被触发析构,但是未遂。。。- using namespace std;
- class A
- {
- public:
- A(int a = 0):_a(a){};
- A(const A &a){ _a = a._a;};
- A & operator=(const A &a){_a = a._a;};
- ~A(){cout << "Hi, destructor " << _a << endl;};
- private:
- int _a;
- };
- map<int, A> m_A;
- void test()
- {
- A testA(3);;
- m_A[1] = testA;
- }
- int main()
- {
- test(); //执行一次插入
- A testA(4);
- map<int, A>::iterator it = m_A.find(1);
- m_A[1] = testA; // 执行更新
- return 0;
- }
复制代码 |
|