gpt4 book ai didi

c++ - 使用 boost::join 合并多个数组

转载 作者:搜寻专家 更新时间:2023-10-31 00:27:30 26 4
gpt4 key购买 nike

使用 boost::join 访问和更改不同数组的值是否更好?

我在 element 类中定义了一个成员数组。

class element
{
public:
element();
int* get_arr();
private:
int m_arr[4];

}

在不同的地方,我正在访问这些数组并使用 boost::join 连接在一起并更改数组值。

 //std::vector<element> elem;
auto temp1 = boost::join(elem[0].get_arr(),elem[1].get_arr());
auto joined_arr = boost::join(temp1,elem[2].get_arr());

//now going to change the values of the sub array
for(auto& it:joined_arr)
{
it+= sample[i];
i++;
}

如上修改类中数组的值是个好主意吗?

最佳答案

在您的代码中,您可能想要加入 4 元素数组。为此,将 get_arr 的签名更改为:

typedef int array[4];
array& get_arr() { return m_arr; }

这样数组大小就不会丢失。

在性能方面,通过连接 View 访问元素的成本不是零。双 for 循环将是最有效的,并且也易于阅读,例如:

for(auto& e : elem)
for(auto& a : e.get_arr())
a += sample[i++];

关于c++ - 使用 boost::join 合并多个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48807747/

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