用于创建矢量长度向量的写入算法

Write algorithm for creating vector of vector lengths

本文关键字:算法 向量 创建 用于      更新时间:2023-10-16

我有一个整数向量向量。 每个第 2 层向量可以具有不同的长度。 我想创建整数向量,其中每个值是相应向量的长度除以一个常量。

例如:

std::vector<int> a = { 1, 2, 3 };
std::vector<int> b = { 1, 2, 3, 4 };
const int kDivisor = 10;
std::vector<std::vector<int>> collection;
collection.push_back(a);
collection.push_back(b);
std::vector<double> scaled_lengths;
for (auto v : collection) {
    scaled_lengths.push_back(static_cast<double>(v.size()) / kDivisor);
}

所需输出为 scaled_length = [.3, .4]

我可以使用 STL 算法来获取此输出吗?

谢谢!

它并不简单,但也许您希望它作为更大事物的构建块。

    scaled_lengths.resize(collection.size());
    std::transform(collection.begin(), collection.end(), scaled_lengths.begin(),
                   [=](auto &v) { return static_cast<double>(v.size())/kDivisor; });