vector<vector<int>>
のすべての値をループを使用せずに0にリセットし、ベクトルのサイズを維持する方法。2-Dベクトルのすべての値をリセットする最速の方法は?
答えて
あなたはfor
ループまたはstd::for_each
との組み合わせでstd::fill
を使用する必要があります。ここでは
for (auto &v: vec) {
std::fill(v.begin(), v.end(), 0);
}
std::fill
はおそらくバック(まともなコンパイラおよび最適化フラグ付き)std::memset
への単一の呼び出しに分類されますが、あなたは必要とします第1次元の場合はfor
です。
2-D std::vector
は単一のメモリブロックではないため、すべてを一度に0
にリセットする方法はありません。
あなたが標準std::fill
とstd::for_each
アルゴリズムを使用することができますすぐに反復することなく、一度std::vector
の複数の要素を設定する方法はありません。これらのアルゴリズムは、内部ループで実装されていることを
std::vector<std::vector<int>> vec;
// Iterate over the first dimension of vectors...
std::for_each(vec.begin(), vec.end(), [](std::vector<int>& inner_vec)
{
// ...fill every inner vector with zeros.
std::fill(inner_vec.begin(), inner_vec.end(), 0);
});
注意。
実際には 'std :: fill'は' for'ループ( 'std :: vector
@Holt:実際にはlibstdC++開発者によって 'std :: memset'として実装されていますか、' for'ループを最適化するコンパイラですか?コンパイラはこれらの些細な状況で常に 'for'を' memset'に相当するコードに変換することができます。 –
コンパイラは最適化されていますが、 'std :: fill'内の' for'ループだけでなく、 'std :: fill'も呼び出すので、上記のループ本体は基本的に' std :: memset(inner_vecポイントは、パフォーマンス問題のために 'std :: fill'を恐れてはいけないということです。ほとんどの場合最適化されます)。 – Holt
- 1. すべての1ビットに__m256値を設定する最速の方法
- 2. TensorFlowでベクトルを含む2Dテンソルを平坦化する最良の方法は?
- 3. 2dアレイを印刷する最も速い方法ですか?
- 4. VHDLで最初のベクトルを選択し、他のすべてをリセット
- 5. デフォルト値を使用して2Dベクトル配列を作成する方法は?
- 6. 2Dベクトルのサイズを調べる
- 7. マップ(値、インデックス)をベクトル(インデックス、値)にC++で変換する最速の方法は何ですか?
- 8. Postgresテーブルのすべてのデータを処理する最速の方法は?
- 9. ベクトルを消去または消去するC++の最速の方法
- 10. ListViewの値をリセットする方法は?
- 11. すべてのページでユニバーサルフッターを取得する最速の方法は?
- 12. すべてのレルムデータをJSオブジェクトにコピーする最速の方法は?
- 13. .NETアプリケーションですべての静的変数を「リセット」する最善の方法
- 14. 2Dベクトルを最も近い15度に丸める方法
- 15. cakephp3とselect2最初の値をリセットする方法
- 16. NxN行列のすべての部分行列を反復する最善の方法/最も速い方法
- 17. ベクトルが行列のランクを増やすかどうかを調べる最速の方法
- 18. すべてのデータフレーム列をフロートにキャストする最速の方法 - パンダastype slow
- 19. 可能なすべてのプルーファシーケンスを実行する最速の方法
- 20. 三角形内の任意の点を見つける最速の方法2D
- 21. IOCコンテナ内のすべてのインスタンスをリセットする方法
- 22. Spring Integrationコンテキスト内のすべてのメッセージをリセットする方法
- 23. 各ページビューの値をリセットする方法
- 24. Pythonで固有値/ベクトルを見つける最速の方法は何ですか?
- 25. Lucene(java)のすべての結果を数える最速の方法
- 26. イテレータを2Dベクトルに引き渡し、その値を別の2Dベクトルに割り当てる
- 27. ブール値に基づいて値を決定する最速の方法+ +
- 28. 最速の方法は、
- 29. サムネイルピクセル値をJavaにロードする最速の方法
- 30. デキューのユニークな値の最大数を計算する最速の方法
最速の方法は、ループを使用することです**。 – LogicStuff