关于容器中包含类和容器中是否有指针的有关问题

关于容器中包含类和容器中是否有指针的问题
问题1:容器的名字,(标号)cb_v是不是地址,或者能不能代表地址,它是不是有一个指向其元素的指针。
问题2:用obb给对象oba赋值时,是不是把obb的副本赋值到oba中。(标号)ca_v是不是也有一个指向其第一个元素的指针。
问题3:以下容器中是不是含有指针,含有那些指针,越具体越好。
问题4:容器分配与撤销时,所要做的工作有那些?
C/C++ code

#include <iostream>
#include <vector>

using namespace std;
class cb{
public:
    vector<int> cb_v;
};
class ca{
public:
    vector<class cb> ca_v;
};
int main()
{
    class cb obb;
    
    class ca oba;
    cout << " 为赋值之前的大小:obb 大小" << sizeof(obb) << endl;
    cout << "oba的大小:"  << sizeof(oba) << endl;
    vector<int> vb_temp;
    for(int i = 0; i < 10; i++)
    {
        vb_temp.push_back(i);
        obb.pb_v = vb_temp;
        cout << &obb.pb_v << " " << &obb.pb_v[0] <<endl;
    }
    cout << " boa.ca_v[i] ";
    for(int i = 0; i < 100; i++)
    {
        oba.ca_v.push_back(obb);
        cout <<&oba.ca_v<< " " << &oba.ca_v[0] << " "<< &oba.ca_v[0].pb_v[0] <<endl;
    }
    cout << " 为赋值之后的大小:obb 大小" << sizeof(obb) << endl;
    cout << "oba的大小:"  << sizeof(oba) << endl;
    
    return 0;
}


------解决方案--------------------
cb_v不是地址,但能取到地址。它是一个容器的对象。
第二个问题是:所有的容器中存放的都是副本。
vector中含有指针,主要是指向存放数据的。
容器分配就是申请内存,初始化。撤销就是释放内存吧。

------解决方案--------------------
变量是个悲剧的概念.忘掉他吧..
3,你可以看看vector的库,看有哪些ptr后缀 或者*. 这个跟实现有关的..
4.容器一般先 获得一段堆空间, 调用构造函数,初始化.
最后习惯,然后释放空间..

某种意义上来说,容器和普通的类没啥区别."分配撤销"和普通的类都差不多的.

------解决方案--------------------
探讨

释放空间时,是自己写析构函数,还是系统自动提供的析构函数引用:
变量是个悲剧的概念.忘掉他吧..
3,你可以看看vector的库,看有哪些ptr后缀 或者*. 这个跟实现有关的..
4.容器一般先 获得一段堆空间, 调用构造函数,初始化.
最后习惯,然后释放空间..

某种意义上来说,容器和普通的类没啥区别."分配撤销"和普通的类都差不多的.

------解决方案--------------------
2.是拷贝了副本到vector中, vector中有的版本,比如sgi stl这个版本,有指向第一个元素的指针。

4. 容器分配的时候,内存,然后调用拷贝构造函数复制到vector中。撤销嘛,自然析构,然后释放内存。


析构函数是调用元素的析构函数,如果是int doulbe 这些内置类型,是不会析构的,

因为不需要。。。存储对象,那么是需要调用对象的析构函数
------解决方案--------------------
自己啊