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

法珊·拉希德(Farsan Rashid)

为什么以下代码在Visual Studio 2010的代码块13.12和20中返回12?我也很困惑为什么它返回除0以外的任何其他值,因为矢量是动态的,而且我没有回退任何元素。

#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);

}
Maxteneff

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

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

  • Visual Studio中的Visual C ++
  • MinGW(最有可能)在CodeBlocks中

如果您想知道内部数据的确切大小(以字节为单位),vector则可以使用以下方法:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么sizeof(* value)返回的值与c ++中的sizeof(value)不同

在Windows和Linux上,`sizeof()`返回不同的值

为什么time()函数在不同的服务器上返回不同的值?

为什么 tput 行返回不同的值?

为什么不同的查询返回重复的值?

为什么AES函数返回不同的值?

为什么此函数返回不同的值?

为什么java返回的编码值不同

为什么FloatToText在不同的项目中返回不同的值?

为什么“ this”值不同?

为什么sizeof的响应与%f不同?

为什么 numpy 数组上的 set 函数返回的值略有不同?

为什么HMAC sha256在PHP和Javascript上返回不同的值

a [n]是否真的可以和*(a + n)互换-为什么sizeof返回两个不同的答案?

为什么MFCC提取库返回不同的值?

微调器,为什么返回不同的间隙和错误的值

为什么Android中的sqlite光标返回不同的值?

为什么模板函数中的strcmp()返回不同的值?

为什么print_r和return返回不同的值?

为什么DATEDIF对于这些值返回不同的结果?

为什么父 pid 返回的值与 getpid() 不同?

为什么回显$?返回的值与预期不同?

为什么HAVING MAX()返回的值与SELECT MAX()不同?

为什么apply函数返回的值不同于循环?

为什么glGetSubroutineIndex为不同的函数返回相同的值?

为什么any()和pd.any()返回不同的值?

AngularJS为什么从函数返回布尔值与属性不同?

为什么cProfile导致函数返回不同的值?

为什么XmlReader.IsEmptyElement返回不同的值?