所以,我正在尝试编写一个函数,将二维向量展平为一维向量并返回它。例如:
如果我有一个矩阵:
8 7 6 3
2 1 9 4
1 2 3 8
它会简单地将其展平为包含以下内容的单维向量:
8,7,6,3,2,1,9,4,1,2,3,8,
虽然我发现了很多困难。这是我到目前为止所拥有的。
std::vector<int> flatten (std::vector< std::vector< int > > vec)
{
std::vector<int> flattened (begin(vec), end(vec));
return flattened;
}
根据我的理解,这允许我创建一个带有第一行中值的向量,但由于我是C ++的新手,我不确定如何进入下一列并添加该行到扁平的矢量。
任何帮助将不胜感激!
答案 0 :(得分:1)
为2D矢量编写通用if(isEven(num))
System.out.println("The integer entered is even.");
else
System.out.println("The integer entered is odd.");
方法
flatten
查看有效的DEMO。
答案 1 :(得分:0)
std::vector<int> flatten (std::vector< std::vector< int > > vec)
{
std::vector<int> flattened;
for (auto & v : vec){
std::copy (v.begin(), v.end(), std::back_inserter(flattened));
}
return flattened;
}