迭代一个向量并根据元素创建另一个向量

也许是一个愚蠢/幼稚的问题,但如果我有一个这样的向量向量:

std::vector<std::vector<Element> vec

从这个包含前一个向量中所有元素大小的向量创建另一个向量的最有效方法是什么:

std::vector<std::size_t> newVector = {vec[0].size(), ..., vec[vec.size()-1].size()}

有这样的功能吗?

提前致谢。

塞尔比

可能有一种 1-liner 方法使用来自<algorithm>或花哨的累加器/转换例程的东西。但是很难超越它的可读性:

std::vector<std::size_t> newVector;
for (const auto& item : vec) {
    newVector.push_back(item.size());
}

如果你更喜欢时髦的方式,有些人喜欢这种方式,但在我看来,这会导致代码相当不可读。

vector<int> newVec(vec.size());
std::transform(vec.begin(), vec.end(), newVec.begin(), [](vector<int>& v) {return v.size(); });

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据另一个向量的值创建向量

根据另一个向量中的元素过滤/复制一个向量

推力访问向量元素的另一个向量

向量元素是另一个向量Matlab的索引

如何创建另一个向量的随机向量?

根据R中另一个向量中定义的数字位置查找向量的元素

创建模板函数以根据大小用另一个向量填充向量

如何创建一个向量来指示一个向量的元素与另一个向量中的任何元素之间的匹配?

创建一个递增的向量,但考虑另一个向量中相等元素的出现次数

将一个向量的元素复制到另一个向量

根据另一个分区分割向量

从另一个向量创建表列

如何从另一个向量的另一个第一个元素减去向量中的第一个元素?

在另一个内部使用rep来根据另一个向量拉伸向量

将向量的向量元素复制到另一个向量

根据另一个数据帧的向量中的信息提取列表元素

从另一个分配一个向量

根据另一个向量将向量分配给两个类别

如何通过另一个向量对一个向量的向量进行排序?

检查向量是否包含另一个向量

估计向量标量以逼近另一个向量

排序因子向量与另一个因子向量

包含另一个向量的结构向量

另一个向量的历史高点的向量

向量的每个元素乘以另一个向量的每个元素

循环以删除向量的重复元素并添加另一个向量的对应元素

使元素向量小于另一个向量的每个元素

在特定位置将一个向量的元素替换为另一个向量的元素

在R个计数中创建一个向量,计算每个元素出现在另一个向量中的次数