gpt4 book ai didi

c++ - 为什么 sizeof 在不同的 IDE 上返回不同的值?

转载 作者:太空狗 更新时间:2023-10-29 21:17:16 27 4
gpt4 key购买 nike

为什么以下代码在代码块 13.12 中返回 12 而在 visual studio 2010 中返回 20?我也很困惑为什么它返回 0 以外的任何其他值,因为 vector 是动态的,我没有推回任何元素。

#include <iostream>
#include <sstream>
#include <iomanip>
#include <string>
#include <stdio.h>
#include <vector>
using namespace std;

class c
{
public:
vector<int>v;
c()
{
v.clear();
}
};
int main() {
int m;
c ob;
cout<< sizeof(ob);

}

最佳答案

因为 sizeof运算符向您显示给定类型的对象表示的内存中大小(以字节为单位)。考虑到 vector容器不仅包含数据(可能有计数器、指针等),内存中的确切大小取决于您使用的编译器中的实现。

在您的情况下,有不同的编译器取决于所选的 IDE:

  • Visual Studio 中的 Visual C++
  • 代码块中的 MinGW(最有可能)

如果您想知道 vector数据 的确切大小(以字节为单位)那么你可以使用下面的方法:

int vector_size = sizeof(int) * v.capacity();

关于c++ - 为什么 sizeof 在不同的 IDE 上返回不同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33256137/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com