問題タブ [c++-standard-library]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 2 次元空間のアイテムをメモリにマッピングする
2次元座標(符号付き短距離)で識別されるアイテムの数があります。すべてのアイテムは、64KB のデータを含むクラスです。常時500~1500点ほどの商品がございます。アイテムは通常、ポイントの周りに ~ 20 のグループになっています。私の質問は、メモリをあまり消費しないようにどのようにマップすればよいかということです。アイテムはゆっくりと追加/削除され (1 秒あたり 1 ~ 10)、非常に頻繁にフェッチされるため、リストからの要素 (より大きな構造へのポインター) のフェッチはできるだけ高速にする必要があります。
私が思いついたのは、いくつかの gridContainer クラスがあり、64x64 ポインターの四角形を格納するとしましょう。他の gridContainer を格納するメイン グリッド コンテナーがあり、このネストされた gridContainer は、マップする実際のアイテムを格納します (これにより、4096x4096 の実際のアイテムが許可されます)。[260, 130] などの特定のアイテムにアクセスするには、それを 64 で割り、商をとって親 gridContainer の位置を見つけ、余りをとってネストされた gridContainer の位置を見つけます。したがって、[270,145] の場合、[4,2] と [14,17] になります。
私も使おうと思っていたのstd::map
ですが、中身がわからず、どんな性能が期待できるのかもわかりません。
私の方法に関する提案、またはそれを行うためのより良い方法はありますか?
c++ - 入力イテレータと読み取り専用のフォワードイテレータの違いは何ですか?
入力イテレータと読み取り専用のフォワードイテレータの違いは何ですか?
後者は読み取り専用であるため、明らかに出力イテレータの要件を満たしていません。そして、そのため、追加の保証(ある場合)を備えた入力イテレータを効果的に使用できます。問題は、どのような追加の保証ですか?
私の推測では、フォワードイテレータはマルチパスであり、入力イテレータはそうではありません。
c++ - GCC リンカは標準ライブラリを見つけられませんか?
XCode で学校のプロジェクトを開発しています。最終製品はメイクファイルを含むソース コードで提出する必要があるため、作業コピーがあることを確認するために、メイクファイルを作成し、その方法でコンパイルを開始しました。これが私のメイクファイルです:
各オブジェクト ファイルのコンパイルは正常に機能しますが、「すべて」のリンク手順になると、標準ライブラリを認識していないように見えます。「cin」から「basic_string」、「operator new」までのすべてで「未定義のシンボル」エラーが発生します。
これらのことは直接示す必要はないと思っていましたし、実際に過去にそうする必要はありませんでした。
何が起こっているのでしょうか?
編集:
それが役立つ場合、これが(非常に長い)エラーメッセージの始まりです:
c++ - C++標準ライブラリをC++で実装する必要がありますか?
- 準拠するC++標準ライブラリの実装をC++で実装する必要がありますか?
- そうでない場合、純粋なC ++と標準ライブラリおよび実装で定義された動作では実行できない魔法のことを実行できますか?
- 拡張機能に依存する並列実装があることは知っていますが(少なくともC ++ 11より前では)、それらは本当に準拠していますか?
- 標準に要件が見つかりませんでしたが、おそらく私の標準fuは今日弱いです
c++ - 実際に要素を挿入せずに、要素がstd::mapのどこに挿入されるかを見つける方法
std::map
実際に要素を挿入せずに、要素がに挿入されるイテレータを簡単に見つける方法はありますか?
c++ - コンパイラーは、テキスト ">" が予期しない C++ XLC であると叫びます
ヘッダーファイルで関数を宣言しました。
理由はわかりませんが、コンパイラはこの行についてうめき声を上げ、"The Text ">"
予期しないと言います。
AIX 5.3 と XLC/VAC コンパイラを使用しています。関数の定義にも何か問題があるのかもしれませんが、マップが機能するためには、マップが保持している型を認識している必要があると想定しました。
問題のある行を以下に示します。
これは関数の正しい宣言だと思います
以下で提案されているように、typedef を定義しましたが、残念ながら、これは問題をシフトするだけで、typedef の行で同じエラーが発生します。
haskell - Haskell FFI: C++ コレクションをどのようにラップしますか?
を返す関数がありますvector<MyClass>
。これをFFIに適したものに変更する最良の方法は何ですか?
:: [CIntPointer]
可能であれば、次のようなタイプが良い妥協案になるかもしれないと考えています。
c++ - std::reference_wrapperのVisualC++10.0のバグ?
コード:
MinGW g ++ 4.6.1での結果:
/blockquote>Visual C ++ 10.0での結果:
/blockquote>Visual C ++コンパイラが、抽象クラスをインスタンス化できないことを11回ユーザーに通知する方法が気に入っています。たとえば、ユーザーが気付いていない場合に備えて、要点を理解するだけです。しかし、
std::reference_wrapper
本当にクラスをインスタンス化する必要がありますか?インスタンス化を必要としないという参照(通過)のポイントの多くはありませんか?つまり、これは、私が強く疑うように、Visual C ++標準ライブラリの実装のバグですか?
c++ - C++ UNICODE と STL
UNICODE
Visual C++ で新しいプロジェクトを作成すると、デフォルトで に設定されUNICODE
ます。
そして、優れた Windows プログラマーになろうとしている私は、 を使いたいと思っていますUNICODE
。
問題は、C++ 標準ライブラリと STL ( std::stringやstd::runtime_errorなど) が文字列でうまく機能しないことですUNICODE
。std::string、または achar*
をstd::runtime_errorに渡すことしかできません。 std::stringがサポートしていないと確信していUNICODE
ます。
私の質問は、std::runtime_errorなどをどのように使用すればよいですか? UNICODE
レギュラーとミックスするべきANSI
?(これは悪い考えだと思います...)プロジェクト全体で
使用するだけですか?ANSI
(好まない..)または何?
c++ - VisualC++標準ライブラリのキーワード
std::exceptionとstd::runtime_errorのユニコードバージョンを書きたかったのです。
そこで、C ++標準ライブラリから実装を取得し、Unicodeをサポートするように変更するよりも良い方法を考えました。
そこで、Visual C ++で例外ヘッダーとstdexceptヘッダーを取得し、コードをコピーして、変更を加えました。
問題は、を削除しない限り、リンクを取得できなかったこと_CRTIMP_PURE
です。_EXCEPTION_INLINE __CLR_OR_THIS_CALL
また、すべてのメンバー関数からプレフィックスを削除しました。
それは機能していますが、私はそれらすべてが何をしたのか非常に興味があります。
_EXCEPTION_INLINE
それは文字通りそのすぐ上にあると定義されており#define _EXCEPTION_INLINE
、私のグーグルスキルは彼らが何をしているのかについてのドキュメントを見つけることができません。
それで、誰かがこれらが何をすることを意味するのか知っていますか?_CRTIMP_PURE
そして、クラスからプレフィックスを削除するまでリンクされないのはなぜですか?