C++で2次元ベクトルをフラット化する方法


C++で2次元ベクトルをフラット化する方法について、シンプルで簡単な方法とコード例をご紹介します。

STL(Standard Template Library)を使用すると、C++でベクトルを操作するための便利な機能を利用できます。2次元ベクトルをフラット化するには、次の手順を実行します。

  1. 2次元ベクトルを定義します。例えば、次のように定義します。
std::vector<std::vector<int>> twoDVector = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
  1. STLアルゴリズムのstd::accumulateを使用して、2次元ベクトルをフラット化します。std::accumulateは、指定された範囲内の要素を結合するための関数です。
std::vector<int> flatVector;
std::accumulate(twoDVector.begin(), twoDVector.end(), std::back_inserter(flatVector), [](const std::vector<int>& a, const std::vector<int>& b) {
    std::copy(b.begin(), b.end(), std::back_inserter(a));
    return a;
});

これにより、twoDVectorがフラット化され、flatVectorに単一の1次元ベクトルとして格納されます。

  1. フラット化されたベクトルを出力します。
for (const auto& element : flatVector) {
    std::cout << element << " ";
}

上記のコードを実行すると、次の出力が得られます。

1 2 3 4 5 6 7 8 9

これで、C++で2次元ベクトルをフラット化する方法がわかりました。以上がシンプルで簡単な方法です。