草庐IT

numbers_size

全部标签

c++ - 为什么 std::size_t 在 32 位系统上是 4 个字节,而 unsigned long long 在 32 位和 64 位系统上都是 8 个字节?

问题很简单。在32位系统上:std::cout在64位系统上:std::cout我只检查了MSVC的实现,它看起来像这样:#ifdef_WIN64typedefunsigned__int64size_t;#elsetypedefunsignedintsize_t;#endif那么为什么不在32位和64位系统上制作std::size_tunsignedlonglong(std::uintmax_t)支持吗?还是我错了? 最佳答案 size_t的要点是能够容纳最大可能对象的大小。在32位系统上,任何对象都不能占用超过2**32字节,因此

error:1408F10B:SSL ro utines:ssl3_get_record:wrong version number

gitclone拉取代码出现的问题:错误原因是:版本冲突解决办法:1)https://换成http://2)如果你是用https拉取时出现的错误,可以删了原项目换成ssh再gitclone,或者直接换成ssh再gitpull(因为你可能之前gitclone的时候用的是ssh,所以换成https时出现版本冲突)成功解决:这里我拉取的是一个空文件夹

c++ - 用 unsigned long 替换 size_t 的缺点是什么

我正在开发的库需要在32位和64位机器上使用;我有很多编译器警告,因为在64位机器上unsignedint!=size_t。将所有unsignedint和size_t替换为“unsignedlong”有什么缺点吗?我很欣赏它看起来不是很优雅,但是,在这种情况下,内存不是太大的问题......我想知道是否有可能由这样的替换产生任何错误/不需要的行为等all操作(你能举个例子吗)?谢谢。 最佳答案 什么警告?我能想到的最明显的一个是“缩小转换”,也就是说你正在将size_t分配给unsignedint,并收到一条警告信息可能迷路了。用u

c++ - 我们如何计算 N choose K modules a prime number 而不会溢出?

我们如何在不调用溢出的情况下在C或C++中计算(NchooseK)%M?对于N(4和K(1和M=1000003的特殊情况. 最佳答案 要计算(nchoosek)%M,可以分别计算分母(n!)模M和分母(k!*(n-k)!)模M,然后将分母乘以分母的模乘法逆(在M中)。由于M是素数,可以利用费马小定理计算乘法逆元。在以下链接(问题SuperSum)上有一个很好的解释和示例代码:http://www.topcoder.com/wiki/display/tc/SRM+467 关于c++-我们如

c++ - 为什么 vector(size) 比 new[] 慢?

我正在对一些STL算法进行基准测试,我对以下代码所花费的时间感到惊讶:(我用time命令测量了g++编译代码[没有优化])#includestructvec2{intx,y;vec2():x(0),y(0){}};intmain(intargc,char*argv[]){constintsize=200000000;std::vectortab(size);//2.26s//vec2*tab=newvec2[size];//1.29s//tab[0].x=0;//delete[]tab;return0;}vector初始化花费的时间是2.26秒,而new(和delete)花费的时间是1

C++,最佳实践,int 还是 size_t?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:Whentousestd::size_t?你好。假设使用模式相同(即没有负数),哪个更适合用于各种索引,int或size_t类型?在您对64位Intel的体验中,两者之间是否存在性能差异?谢谢

c++ - 数组中的魔数(Magic Number)? - C++

我是一个相当新的程序员,如果这些信息很容易获得,我深表歉意,我只是还没有找到它。这是我的问题:当您使用文字数字访问数组的特定元素时,是否被视为魔数(MagicNumber)?例如:arrayOfNumbers[6]//Issixamagicnumberinthiscase?我问这个问题是因为我的一位教授坚持认为程序中的所有文字数字都是魔数(MagicNumber)。如果我只使用实数访问数组的元素,而不是为每个元素使用命名常量,这对我来说会很好。谢谢! 最佳答案 这真的取决于上下文。如果您有这样的代码:arr[0]="Long";ar

c++ - 为什么 std::span 缺少 size_type?

我一直在将使用我的自制span类的旧代码更新为更符合C++20std::span的代码,但我遇到了编译错误,因为std::span没有size_type而是有index_type。关于index_type是否应该签名的问题一直存在争议,但为什么要跳过size_type?这打破了期望容器(或类似容器的对象)具有size_type的通用代码。 最佳答案 原提案P1022R0,当它被称为array_view时,有一个size_type成员。它在第一次修订中被删除了P1022R1作为简化的一部分,因为当时不需要size()和元素访问,使用带

c++ - 将 size_t 转换为整数 (c++)

我一直在尝试制作一个for循环,该循环将根据网络数据包的长度进行迭代。在API中,event.packet->dataLength存在一个变量(size_t)。我想从0迭代到event.packet->dataLength-7每次迭代时将i增加10,但我遇到了很多麻烦。我寻找解决方案,但找不到任何有用的东西。我尝试将size_t转换为unsignedint并用它进行算术运算,但不幸的是它没有用。基本上我想要的是:for(inti=0;idataLength-7;i+=10){}虽然每次我做这样的事情或尝试我的转换时,我 最佳答案 你

c++ - 是否有标准名称(模板或宏)来替换 ARRAY_SIZE、_countof 等?

我不是在谈论std::array或任何东西,只是经典的VanillaC/C++数组。我知道可以实现ARRAY_SIZE/_countof的各种方式,我只是想知道他们是否已经设法为此标准化了一个名称(在std::我假设)。如果没有,是否有相关建议? 最佳答案 当前的解决方法std::extent-数组的大小如果您正在使用native数组,您可以使用std::extent来自,用于生成数组的Nth维(默认为第一个)中的元素数。inta1[1024];inta2[std::extent::value];//int[1024]一点间接(通用