关于C++构造与析构函数调用次数匹配有关问题

关于C++构造与析构函数调用次数匹配问题
#include <iostream>
#include <map>
#include <vector>

using namespace std;

class A
{
public:
    A()
    {
        cout<<"A "<<endl;
    }
    ~A()
    {
        cout<<"~A "<<endl;
    }
};

int main()
{
    vector<A> va;
    va.push_back(A());
    map<int, vector<A> > mvA;
    mvA[1] = va;
    cout << "~~~~~~~~~~~" << endl;
    return 0;
}


输出:
A
~A
~~~~~~~~~~
~A
~A

请教: A的构造与析构调用次数为什么不等??



------解决方案--------------------
拷贝构造函数的存在
------解决方案--------------------
自己没有定义拷贝函数时候,系统会使用默认的拷贝构造(编译器生成的),因此你没有看到构造过程,只看到了析构