当前位置: 首页 > 知识库问答 >
问题:

X86架构-设置无符号long long的矢量大小

连正信
2023-03-14

当我试图在x86体系结构中使用无符号long-long设置向量大小时,我看到以下错误:

unsigned long long sz;
vec.resize(sz);

错误C4244:“参数”:从“无符号__int64”到“const无符号int”的转换,可能丢失数据

为什么会出现此错误?x86体系结构中无符号long-long的行为是什么?如何在x86体系结构中使用无符号long-long值设置向量大小?

共有1个答案

司马项明
2023-03-14

像普通人一样使用size\t sz,这是arg类型std::vector::resize(size\t)所期望的,因此使用相同的类型将意味着没有隐式转换,因此不会缩小范围。

您不能让std::向量大于SIZE_MAX,所以使用更宽的整数类型是没有意义的。这就是MSVC抱怨的全部。如果您在sz中实际上从来没有一个巨大的值,那就不是错误,但您显然将MSVC设置为非常迂腐,并将警告视为错误。

这种隐式转换首先是不必要的;通过使用匹配类型来避免它。

 类似资料:
  • 我正在开发一个全堆栈的Web应用程序,突然,当我打开Intellij ultimate时,我一次又一次地出现了错误“Cannot reslove symbol‘springframework’”。 单击import IntelliJ后,安装了一些Jar文件,但我想不是全部,因为我使用的所有注释都不再被识别。 我在社区版的IntelliJ中打开了我的项目,它没有问题。我需要在终极版中完成我的项目,因

  • C语言有符号和无符号类型,如char和int。我不确定它是如何在程序集级别实现的,例如,在我看来,有符号和无符号的乘法会带来不同的结果,那么程序集是同时做无符号和有符号的算术,还是只做一个,这在某种程度上是针对不同情况模拟的?

  • 我对SQL比较熟悉,对如何最好地表示以下内容的实体关系图有点困惑: 假设我们有一个公司。公司有员工。员工有经理(多名员工对1名经理)。管理者是雇员(但管理者不能管理自己)。每个员工/经理可以在多个项目上(一个EMP/经理对多个项目)。此外,员工/经理在公司中有许多角色(1个EMP/经理到许多角色)。 我最困惑的是如何将经理嵌入员工内部。我是否需要包含任何约束,以确保没有经理管理自己? 下面是我到目

  • 带有元素v1,v2,v3,...,vn的向量v的大小由公式给出 - | V | =√(v1 2 + v2 2 + v3 2 + ... + vn 2 ) 您需要采取以下步骤来计算向量的大小 - 使用array multiplication (。*)获取向量的array multiplication 。 这产生了矢量sv,其元素是矢量v的元素的平方。 sv = v。* v; 使用sum函数得到向量v

  • 我们已经知道怎样编译C++内核并通过GRUB启动该二进制文件,现在我们能够用C/C++做一些很酷的事了。 输出文本到屏幕控制台 我们继续使用 VGA 默认模式(03h) 来对用户显示一些文本。屏幕可以通过起始地址为0xB8000的Video Memory(显存)直接访问,屏幕分辨率是8025,每个字符在屏幕上被定义为2个字节:一个是字符码,另一个是属性字节(描述了字符的表现形式,包括了字符颜色等属

  • 问题内容: 我想将填充的轮廓图包括到pdf文档(例如TeX文档)中。目前我使用小号,并保存到与小号。问题在于,与高分辨率相比,绘图的大小变得相当大。 减小大小的一种方法当然是减少地块中的层数,但是,层数太少则会导致地块变差。我正在寻找一种简单的方法,例如让绘图的颜色另存为png,并且将轴,刻度等保存为矢量。 问题答案: 您可以使用选项执行此操作。 任何小于您设置的值的内容都将保存为栅格化的图形,即