我有一个结构 vector ,如下所示。该结构保存绘图的相关数据。
struct DATA_T
{
double x;
double y;
double z;
}
std::vector<DATA_T> results;
我需要能够检索结果 vector 中的所有 x
值并将它们存储为 double vector
我知道我可以通过编程方式创建这些 vector 。
std::vector<double> x_values;
x_values.reserve(results.size());
for(auto const &data : results)
{
x_values.push_back(data.x);
}
但是,我想知道是否有更简洁的解决方案。也许使用与我如何使用 find_if
搜索特定数据点类似的方法?
最佳答案
你可以使用 std::transform为此,为其提供适当的 lambda 以检索 x
:
std::vector<double> x_values;
x_values.reserve(results.size());
std::transform(std::cbegin(results), std::cend(results),
std::back_inserter(x_values),
[](const auto& data) {
return data.x;
}
);
关于c++ - 从结构 vector 中获取特定成员的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45377857/