【发布时间】:2018-02-08 11:35:19
【问题描述】:
class c1 {
public:
std::vector<int> vc;
};
int main(int argc, char** argv) {
std::vector<int> v2;
std::cout << "Size 1" << sizeof (v2) << '\n';
v2.push_back(23);
std::cout << "Size 2" << sizeof (v2) << '\n';
c1 obj;
std::cout<<"\n Size of class is :"<<sizeof(obj);
std::cout<<"\n Size of class vector is :"<<sizeof(obj.vc);
obj.vc.push_back(25);
obj.vc.push_back(25);
obj.vc.push_back(25);
obj.vc.push_back(25);
obj.vc.push_back(25);
obj.vc.push_back(25);
obj.vc.push_back(25);
obj.vc.push_back(25);
std::cout<<"\n Size of class is :"<<sizeof(obj);
std::cout<<"\n Size of class vector is :"<<sizeof(obj.vc);
return 0;
}
代码输出:
Size 124
Size 224
Size of class is :24
Size of class vector is :24
Size of class is :24
Size of class vector is :24
在上面的代码中,为什么sizeof()对向量的输出和向量在类内时sizeof()对向量的输出是不同的。请解释这段代码的输出。
【问题讨论】:
-
“Size 1”和“24”、“Size 2”和“24”之间没有空格