私は16000 X 9000単位のマップを持つゲームに取り組んでいます。もし私がマップ上のどの点X、Yにあっても、半径2000単位まで見ることができます。私は、特定の地域を訪問したかどうかを管理できる何かを求めていました。主な質問は、私はboolの配列を取るべきですか?それは訪問されたあまりにも大きいブール[16000 * 9000]になります。そう、助言したかった、ありがとう。私はstackoverflowに新しいです、私はポイントにしていない場合はごめんなさい。C++で訪問した座標の配列
1
A
答えて
0
実際にbool
タイプの配列を使用することは効率的ではありません。主にC++でbool
のサイズが豪華に大きくなる可能性があるためです。 (私のプラットフォームでは、8ビット長で、7ビットは使用されません)。C++標準では、sizeof(bool)
という値は指定されていません。これは、これは密に充填されstd::vector
の明示的な特化およびC++標準保証である:すなわち、無駄なスペースがありません
ではなくstd::vector<bool>
の使用を検討しています。 には、1つの連続したメモリブロックを取得することが困難な場合は、std::vector<std::vector<bool>>
が必要です。これは、すべてそうでダイビングする前に慎重にこれを考慮しない、いくつかの民族が復讐とbool
ベクトル特化を嫌い、と述べた。(非推奨のためにそれをスケジュール検討する動きがあります!)
それともできたあなたのグラフの塊エリアunsigned
などの整数型のセットにあなた自身を一緒にしてください。
1
発見された領域を円形にする必要がある場合は、この巨大なarryを使用する必要があります。
完全な円である必要がない場合は、単純にダウンサンプリングすることができます。つまり、10ブロックの粗さを使用すると、1600x90サイズの配列のみが必要です。
関連する問題
- 1. Python:AStarのバイナリ配列の以前に訪問した座標を保存する
- 2. C++:座標の配列ですか?
- 3. 座標/配列
- 4. 2D配列と座標
- 5. geojsonファイルフォーマットの問題、大きな配列の中のミニ配列(座標)
- 6. データベースから座標の配列をループする際の問題
- 7. Cで文字配列を使用する座標系
- 8. 取得配列座標(8つのクイーン問題)
- 9. OpenLayers 3:配列の座標へのズームマップ
- 10. 座標配列の並び替えJava
- 11. 配列に座標を追加する
- 12. 「最近訪問したサイト」のアプリケーションC#
- 13. 画面上の座標を配列グリッド座標に変換する
- 14. ノーマライズされたデバイス座標ウィンドウ座標への座標
- 15. 座標マーカをオブジェクトの2D配列で印刷します。 Java
- 16. ユニティC#タッチ座標
- 17. glDrawElementsで座標テクスチャ配列が正しく動作しない
- 18. C++で座標セットの配列を格納する(ペアのベクトルのベクトル?)
- 19. OpenGLテクスチャ座標の問題
- 20. Opencv cvSetImageROI座標の問題
- 21. 座標変換の問題
- 22. 座標計算の問題!
- 23. OpenGLの座標問題
- 24. SVG clipPath座標の問題
- 25. 2D配列の座標ペアの1D配列の整数インデックスを返します
- 26. PointCollection(C#)のX座標とY座標の最小値
- 27. 地図の座標C#
- 28. Qt、QwtでQwtPlotを右クリックしてX座標とY座標を選択したときの問題
- 29. 注文座標問題
- 30. int配列内の文字列の座標を変換する
「144MB」になります。もしあなたが非常に心配しているならば、 'vector 'を使うことができます。最適化のために、たぶん' 18 MB'しか必要としません。 –
alexeykuzmin0
18MBは最近ではあまりありません – nate
'16000 * 9000'はおよそ' 137 * 2^20'なので、今日の典型的なパーソナルコンピュータのRAMに保存するには大きすぎないはずですか? – MikeCAT