I have a class A with a member which is a vector of object pointers of another class B
class A
{
    std::vector<B*> m_member_A
m_member_A is populated by creating objects of B by using new operator
B* b1 = new B;
m_member_A.push_back(b1);
In A's destructor, is the following correct to free up everything?
A::~A()
{
    for(int i = 0; i < m_member_A.size(); ++i)
    {
        delete m_member_A[i];
    }
    m_member_A.clear();
}
 
     
     
     
    