本文介绍了在“2d向量”内部创建向量的大小的向量。 (vector< vector>>)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个向量向量,例如

I have a vector of vectors, say

std::vector< std::vector<int> > my2dArray;

现在我想有一个包含 my2dArray 。手动这将看起来像

Now I would like to have a vector that contains the sizes of the vectors inside my2dArray. Manually this would look something like

std::vector<int> mySizes;
for (int i = 0; i < my2dArray.size(); i++ )
{
  mySizes.push_back( my2dArray[i].size() );
}

有更多的优雅循环 - 通过使用一些STL算法等?

Is there a more "elegant" way of doing this - without manually writing a loop - by making use of some STL algorithm or the like?

推荐答案

C ++ 03:

typedef std::vector<int> IntVec;
std::vector<size_t> sizes(my2dArray.size());
std::transform(my2dArray.begin(), my2dArray.end(), sizes.begin(),
               std::mem_fun_ref(&IntVec::size));

这篇关于在“2d向量”内部创建向量的大小的向量。 (vector&lt; vector&gt;&gt;)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-06 06:39