请问stl vector使用时内存不断上涨? 有内存泄露

请教stl vector使用时内存不断上涨? 有内存泄露?
反复执行func,内存会不断缓慢上涨,每次大概会增加10-100个字节

C/C++ code

    class A
    {
        
        vector<int> v1;
        int num;

        A()
        {
            num = 0;
        }
        ~A()
        {
            clear();
        }
        clear()
        {
            v1.clear();
            num = 0;
        }

        void add(int x)
        {
            v1.push_back(x);
            num++
        }
    }
    void func();
    {
        vector<A> av;
        A a1;
        for (int i = 0; i < 60000; i++)
            for (int j = 0; j < 3; j++)
            {
                a1.clear();
                al.push_back(1);
                a1.push_back(2);
            }

            av.clear();

    }



------解决方案--------------------
//我用capacity函数帮你测试了一下。如果你调用了clear函数,就不会出现重新申请更大内存的情况···
 void func();
{
vector<A> av;
A a1;
for (int i = 0; i < 60000; i++)
for (int j = 0; j < 3; j++)
{
a1.clear();
al.push_back(1); //类中没有push_back函数
a1.push_back(2);
}

av.clear();

}


------解决方案--------------------
因为clear不会释放内存
对象析构时才会
释放内存可以:
vector<A> tmp;
tmp.swap(al);
tmp析构则内存释放
------解决方案--------------------
你退出程序就好了,退出程序会调用析构的
不过这不算泄漏, 只是STL管理内存的方式
------解决方案--------------------
人家用了这么久的东西就被你轻易的否定了。
------解决方案--------------------
探讨

因为clear不会释放内存
对象析构时才会
释放内存可以:
vector<A> tmp;
tmp.swap(al);
tmp析构则内存释放

------解决方案--------------------
STL vector有他自己的内存管理方式。另外,你如果测试debug和release同样也会发现内存的变化不一致哦。呵呵。