gpt4 book ai didi

c++ - 将结构化数据投影到 std::vector 的最有效方法是什么?

转载 作者:搜寻专家 更新时间:2023-10-31 01:42:39 25 4
gpt4 key购买 nike

假设我有以下结构类型:

struct XStruct {
int a_value;
int b_value;
}

struct YStruct {
int c_value;
int d_value;
};

现在我有以下 vector :

std::vector<XStruct> m_x_values;

我想将我的数据投影到 c_values = b_values 和 d_values = a_values

std::vector<YStruct> m_y_values;

最有效的方法是什么:

选项 1:

m_y_values.clear();
m_y_values.reserve(m_x_values.size());

for(auto x : m_x_values)
{
m_y_values.push_back({x.b_value, x.a_value});
}

选项 2:

m_y_values.resize(m_x_values.size());
int i = 0;
for(auto x : m_x_values)
{
m_y_values[i].c_value = x.b_value
m_y_values[i].d_value = x.a_value;
++i;
}

还有什么建议吗?

最佳答案

您可以像这样创建第二个结构的构造函数:

struct YStruct {
explicit YStruct(const &XStruct x_struct)
: c_value(x_struct.a_value)
, d_value(x_struct.b_value)
{};

int c_value;
int d_value;
};

您将能够使用 y_struct = x_structYStruct y_struct(x_struct)。然后简单地将第一个 vector 的每个元素复制到第二个。

关于c++ - 将结构化数据投影到 std::vector 的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26542194/

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