gpt4 book ai didi

c++ - 从对象返回静态大小的数组的最简洁的代码方式是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 15:26:38 25 4
gpt4 key购买 nike

我遇到这样一种情况,其中一个类包含一个大小为 5 的常量 vector 。我需要该 vector 中的数据作为大小为 5 的数组,因为我们的 std::vector 实现似乎没有使用连续内存(请不要不要争论这个,我知道它应该并且我们已经检查到死)。连续的内存块是必需的,因此我们可以轻松地对内存块进行 uuencode/uudecode(将任意内存块转换为字符串)。

我发现很难返回静态大小的数组。我可以通过引用来完成,也可以通过将静态大小的数组包装在结构中来完成——但两者都有点令人不安。通过引用要求调用代码首先声明数组并将其传递给代码,而另一个选项要求我为此目的制作一个额外的结构。

class A {
public:
/*return type*/ GetVectorAsArray(/*params*/) { /* implementation */ }

private:
std::vector<X> m_vec;
};

那么,假设我需要调用 GetVectorAsArray,将 m_vec 中的 5 个值返回到调用代码的最简洁方法是什么?您可以在返回类型或参数和实现中放入任何您想要的内容。

最佳答案

boost::array适用于固定大小的数组,您可以随时使用它。它使用连续内存。

稍后编辑:正如评论者正确指出的那样,std::array 在新标准中可用。

关于c++ - 从对象返回静态大小的数组的最简洁的代码方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7353384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com