草庐IT

WPRINTF_SIZEOF

全部标签

c++ - 为什么 std::bitset 建议的可用位比 sizeof 所说的更多?

我正在处理C++中的一些简单的位操作问题,并在尝试可视化我的步骤时遇到了这个问题。我了解分配给不同原始类型的位数可能因系统而异。对于我的机器,sizeof(int)输出4,所以我的值有4个char位。我现在也知道一个字节的定义通常是8位,但不一定是这样。当我输出CHAR_BIT时,我得到8。因此,我希望我的int值总共有32位。然后我可以继续将我的int的二进制值打印到屏幕上:intmax=~0;//Allmybitsareturnedonnowstd::cout(max)如果我愿意,我可以增加bitset大小:intmax=~0;std::cout(max)为什么会有这么多?我本来希

c++ - sizeof() 一个 vector

我有一个vector>数据结构(事务数据库),我想知道它的大小。当我对每个set使用sizeof()时尽管集合包含3、4或5个字符,但大小为24。后来,当我使用sizeof()和vector>大小是12...我想这不是了解数据结构大小的方法。有什么帮助吗?谢谢。 最佳答案 你想要vector::size()和set::size()。假设v是您的vector,请执行以下操作:size_tsize=0;for(vector>::const_iteratorcit=v.begin();cit!=v.end();++cit){size+=c

c++ - sizeof() 一个 vector

我有一个vector>数据结构(事务数据库),我想知道它的大小。当我对每个set使用sizeof()时尽管集合包含3、4或5个字符,但大小为24。后来,当我使用sizeof()和vector>大小是12...我想这不是了解数据结构大小的方法。有什么帮助吗?谢谢。 最佳答案 你想要vector::size()和set::size()。假设v是您的vector,请执行以下操作:size_tsize=0;for(vector>::const_iteratorcit=v.begin();cit!=v.end();++cit){size+=c

c++ - 如何将static_assert与sizeof和stringify结合起来?

内存使用在我的应用程序中非常重要。因此,我有特定的断言,在编译时检查内存大小,如果大小与我们之前认为正确的大小不同,则给出static_assert。我已经定义了一个这样的宏:#defineCHECKMEM(mytype,size)static_assert((sizeof(objectType)==size)),"Sizeincorrectfor"#mytype"!");这个宏可以很容易地写出来:CHECKMEM(Book,144);CHECKMEM(Library,80);问题在于,当这个static_assert关闭时,可能很难找出新的大小应该是多少(例如,通过使用隐藏的编译器选

c++ - 如何将static_assert与sizeof和stringify结合起来?

内存使用在我的应用程序中非常重要。因此,我有特定的断言,在编译时检查内存大小,如果大小与我们之前认为正确的大小不同,则给出static_assert。我已经定义了一个这样的宏:#defineCHECKMEM(mytype,size)static_assert((sizeof(objectType)==size)),"Sizeincorrectfor"#mytype"!");这个宏可以很容易地写出来:CHECKMEM(Book,144);CHECKMEM(Library,80);问题在于,当这个static_assert关闭时,可能很难找出新的大小应该是多少(例如,通过使用隐藏的编译器选

OPENCV错误:断言失败(((((((sizeof(size_t)<<< 28)| 0x8442211)....线957

我试图在光标下获取颜色(RGB值)。当我的代码编译并运行它时,我的程序有一个盒子说“thing_1.exe中的0x00007FFBF64B3C58的未经处理的异常:MicrosoftC++例外:cv::exception在存储器位置0x0000001da30fefb0。”。当我按下继续盒子时,就回来了。我是新手编码的新手,这可能是一个新手错误,很抱歉我的凌乱代码...#include"opencv2/highgui/highgui.hpp"#include#includeusingnamespacecv;usingnamespacestd;booleank=true;POINTcursorPo

c++ - C & C++ 中 sizeof() 运算符的返回值

这个问题在这里已经有了答案:Sizeofcharacter('a')inC/C++(4个回答)关闭9年前。#includeintmain(){printf("%d",sizeof('a'));return0;}为什么上面的代码在C和C++中编译时会产生不同的结果?在C中,它打印4而在C++中,这是更可接受的答案,即1。当我用main函数中声明的char变量替换sizeof()中的'a'时,两种情况下的结果都是1! 最佳答案 因为,这可能令人震惊,C和C++不是同一种语言。C将字rune字定义为具有int类型,而C++认为它们具有ch

c++ - C & C++ 中 sizeof() 运算符的返回值

这个问题在这里已经有了答案:Sizeofcharacter('a')inC/C++(4个回答)关闭9年前。#includeintmain(){printf("%d",sizeof('a'));return0;}为什么上面的代码在C和C++中编译时会产生不同的结果?在C中,它打印4而在C++中,这是更可接受的答案,即1。当我用main函数中声明的char变量替换sizeof()中的'a'时,两种情况下的结果都是1! 最佳答案 因为,这可能令人震惊,C和C++不是同一种语言。C将字rune字定义为具有int类型,而C++认为它们具有ch

c++ - 为什么使用两个 sizeof 来检查一个类是否是默认可构造的,而一个却不行?

我使用了“IsthereawaytotestwhetheraC++classhasadefaultconstructor(otherthancompiler-providedtypetraits)?”中的代码。我稍作修改以适用于我的所有测试用例:templateclassis_default_constructible{typedefintyes;typedefcharno;//thesecondversiondoesnotwork#if1templateclassis_equal{};templateclassis_equal{typedefvoidtype;};templatest

c++ - 为什么使用两个 sizeof 来检查一个类是否是默认可构造的,而一个却不行?

我使用了“IsthereawaytotestwhetheraC++classhasadefaultconstructor(otherthancompiler-providedtypetraits)?”中的代码。我稍作修改以适用于我的所有测试用例:templateclassis_default_constructible{typedefintyes;typedefcharno;//thesecondversiondoesnotwork#if1templateclassis_equal{};templateclassis_equal{typedefvoidtype;};templatest