如何将由lambda返回的浮点数数组插入到浮点数向量中?

椭圆门

我正在尝试使以下代码正常工作

auto createMyArray = []() {
  float foo[] = {0.0f, 1.5f, 2.0f};
  return foo;
};

auto myArray = createMyArray();

std::vector<float> myVector;

// fatal error: no matching function for call to 'begin'
myVector.insert(myVector.end(), std::begin(myArray), std::end(myArray));

问题是createMyArray返回一个指向数组的指针,我不确定尝试取消引用它是否是一个好主意。

我也收到以下警告

warning: address of stack memory associated with local variable 'foo' returned [-Wreturn-stack-address]
    return foo;

这是有道理的,因为我不想使用new来创建数组,因为我想避免堆分配。

pn

处理此类数组的现代C ++方法是使用std::array那应该避免您面临的问题。

像这样使用本机C数组会使您陷入与分配有关的问题,应避免这些问题。您所看到的编译器警告不要掉以轻心(就像任何警告一样)。它告诉您foo指向的内存超出了您的lambda范围。myVector调用之后您创建对象很可能会覆盖它createMyArray()并且对foo元素的任何进一步引用都可能给您带来垃圾。

除此之外,请参见以下有用的答案:如何在不循环的情况下将数组的内容复制到C ++中的std :: vector?

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

浮点数返回0

来自分类Dev

pinvoke返回浮点数

来自分类Dev

我如何读写浮点数组?

来自分类Dev

使用unique_ptr到浮点数数组

来自分类Dev

从UnsafePointer <UnsafePointer <CFloat >>到Swift中的浮点数组?

来自分类Dev

如何将字符串编码的浮点数组解组为浮点数组?

来自分类Dev

如何将二维浮点数组从QML传递到C ++?

来自分类Dev

如何在Aerospike KV商店中插入浮点数?

来自分类Dev

如何将整数位放在浮点数中?

来自分类Dev

C ++-浮点数组的向量

来自分类Dev

如何将压缩的二进制文件读取为浮点数数组

来自分类Dev

如何快速从浮点数数组中获取前2个最大值?

来自分类Dev

如何将由逗号分隔的浮点值字符串存储到浮点数组中?

来自分类Dev

numpy,引用浮点数组到浮点数组

来自分类Dev

如何将字符串列表转换为浮点数数组?

来自分类Dev

返回浮点数数组时出现错误

来自分类Dev

“回合”如何返回浮点数?

来自分类Dev

如何从Pyspark中的PandasUDF返回浮点数的dataFrame?

来自分类Dev

如何计算C中的浮点数?

来自分类Dev

如何截断jscript中的浮点数?

来自分类Dev

如何将值从NSMutableArray复制到要在OpenGL中使用的浮点数组

来自分类Dev

Java中的空浮点数组

来自分类Dev

向量数学中的大浮点数

来自分类Dev

忽略浮点数组中的字符?

来自分类Dev

如何计算浮点数的Python浮点数的根

来自分类Dev

如何将具有浮点数的文本文件读取到C中的浮点数组

来自分类Dev

如何对浮点数数组求和

来自分类Dev

比较向量中的浮点数

来自分类Dev

如何从mysqldump插入浮点数