vector<bool>
をbool *
に素早く変換できるトリックはありますか?私は多くの細胞を保持するベクターを持っており、それをbool *
配列に変換しなければなりません。私はループのためにそれをすることができますが、それは多くの時間がかかります。stoolベクトル<bool>をbool *配列に変換する速い方法
答えて
ベクターから生の配列にデータをコピーせずにこれを行う方法はありません。理由は、std::vector<bool>
は、要素ごとに1ビットしか格納しない(連続して格納されているにも関わらず)ためです。したがって、あなたは、通常のトリックを使用することはできません...
std::vector<Foo> v(10);
Foo* p = &v[0];
しかし、これは、その浅いのような良いアイデアではありません。あなたは本当に深いコピーが欲しいでしょう...
bool* arr = new bool[v.size()];
std::copy(std::begin(v), std::end(v), arr);
// ...
delete[] arr;
自分でメモリを管理したくない場合は、スマートポインタを使用できます。
auto arr = std::make_unique<bool[]>(v.size());
std::copy(std::begin(v), std::end(v), arr.get());
C + 11の 'トリック'(生の配列にアクセスする)は、 'std :: vector :: data()'の助けを借りても表現できます。実際には 'std :: vector
@Banex私はあなたのコメントを理解していません。私たちは同意しているようです。 – erip
標準によると、その実装はデータの格納方法に依存しますが、1ビット当たり1つのブールは保証されません! 使用された実装が 'vector
- 1. ソースタイプ 'System.Nullable <bool>'をターゲットタイプ 'bool'に変換する方法
- 2. ベクトル<string>をベクトルに変換する方法<char*>
- 3. ベクトル<int>が次の場合にベクトル<bool>より速い理由
- 4. 文字列配列をdouble配列に変換する最速の方法は?
- 5. IQueryable <T>をExpression <Func <T, bool>>に変換する方法?
- 6. 文字列をboolに変換する方法
- 7. double *を配列に変換する方法<double>(6)
- 8. リストを変換する最速の方法<?><ObjectType>
- 9. C++整数をboolの配列に変換するアルゴリズム
- 10. PHPアソシエート配列を文字列に変換する最速の方法
- 11. Func <T, String>をFuncに変換する<T, bool>
- 12. C++列挙型ベクトルを等価なObjective C配列/ベクトルに変換する方法は?
- 13. セル配列から数値をベクトル行列に変換する
- 14. C#System.Func <Tderived、bool>をSystem/Funcに変換します。<Tbase, bool>
- 15. Swiftのイメージヘックスダンプをバイナリ配列に変換する方法をより速く
- 16. ctypes配列をPythonリストに変換するための高速な方法は?
- 17. ビットストリングnumpy配列を整数ベース2に変換する最速の方法
- 18. バイト配列をvbでバイナリに変換するより高速な方法は?
- 19. ベクトル<Mat>をベクトル<float>に変換しますか?
- 20. ベクトルをベクトルに変換するコードをベクトルに変換する
- 21. スパークデータフレーム列をベクトルからセットに変換する方法は?
- 22. 入力データフレーム列をベクトルに変換する方法
- 23. 変換オブジェクトを配列に変換する方法
- 24. バイト配列をint配列に変換する方法は?
- 25. bash配列をPSQL配列に変換する方法
- 26. 1d numpy配列を2d numpy配列に変換する方法
- 27. PHP - Javascript配列をPHP配列に変換する方法
- 28. 4d配列を3次元配列に変換する方法
- 29. C#。 1D配列を2D配列に変換する方法
- 30. Func <TSource、bool>述語をFuncに変換<TDest, bool>述語
あなたはブール値の配列を意味しますか?すなわち 'bool []'またはboolへのポインタの配列? –
C++ 11以降、 'bool'にならないでしょうか。 – LogicStuff