問題タブ [ptr-vector]
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++ - C++:メンバー参照またはポインター?
私はいくつかのファンクターに渡す必要があるオブジェクトのコレクション (現在boost::ptr_vector) を持っています (これを vec と呼びましょう)。すべてのファンクターに、基本的にキャッシュである同じ vec への参照/ポインターを持たせて、各ファンクターが同じデータ キャッシュを持つようにします。これを行うには、次の 3 つの方法が考えられます。
Functor クラス
boost::ptr_vector<object>&のコンストラクターにa を渡し、メンバーFunctorを持つboost::ptr_vector<object>&boost::ptr_vector<object>*Functor のコンストラクターにa を渡し、boost::ptr_vector<object>*Functor クラスにメンバーを持つの使用を避け、配列 ( ) をコンストラクターに
boost::ptr_vector直接渡すobject*
方法 3 を使用しようとしましたが、生のポインターの代わりにベクターを使用する必要があると常に言われました。そのため、方法 2 を試しましたが、ポインターによって追加された余分なレベルの間接性が原因で、プログラムにレイテンシが追加されました。現時点では方法 1 を使用していますが、ファンクターの有効期間中にキャッシュを再割り当てする必要がある場合があるため (データ キャッシュが変更される可能性があるため)、これは適切な代替手段ではない可能性があります。
私は完全には理解していません。ファンクターがコピーされている途中のどこかを想定しています (ただし、これらはすべて ptr_vector 自体に格納されています)。
方法 3 は私の場合に最適ですか? 方法 2 は遅すぎます (レイテンシーが非常に重要です)。方法 1 に関しては、代わりにベクトルを使用するように何度もアドバイスされています。
どんなアドバイスでも大歓迎です
c++ - C++: なぜ boost::ptr_vector のサイズ変更には、デフォルトのコンストラクタを持つオブジェクトが必要なのか
すべてのポインターの削除を処理するため、std::vector だけで boost::ptr_vector を使用しています。しかし、私がするとき:
SoftLabelRandomTreeFunctorデフォルトのコンストラクターがないと文句を言います。ただし、 * a自体のサイズではなく、 * number_of_functorsa へのポインターのサイズに合わせて十分に大きくする必要があるという印象を受けました。SoftLabelRandomTreeFunctornumber_of_functorsSoftLabelRandomTreeFunctor
c++ - BOOST と C++: ポリモーフィズムを機能させることができないようです
「形状」を格納するために ptr_vector を使用しています。「円」などの派生形状クラスで埋めようとしていますが、それらをダウンキャストしようとするたびにキャストが悪くなります。
c++ - boost::ptr_vector を使用した C++ のメモリ リーク
タスク マネージャーを開いてメモリ使用量を確認すると、.3MB のメモリ使用量から始まります。ptr_vector に 100,000 個のオブジェクトを追加すると、2.3MB のメモリが使用されます。ベクターで .clear() を使用した後、メモリは .8-.9MB になります。このメモリ使用量の増加の原因は何ですか?
コードは次のとおりです。
助けてくれてありがとう。
c++ - boost::ptr_vector ソート関数
ソートされた順序で維持したいboost::ptr_vectorがあります。
私は、いくつかの単純な文字列と値を含む一連の Customer オブジェクトを作成しています。これらは、boost::ptr_vector に格納され、文字列の 1 つで並べ替える必要があります。
私は周りを見回しましたが、boost::ptr_vector メンバー関数に関する多くの情報を見つけることができないようですが、私がやろうとしていることに関連していると思われる sort() と呼ばれるものがあるようですが、多くの情報はありませんこの機能の使用について。
boost::ptr_vector で使用できる「順番に挿入」タイプの関数はありますか? または、すべてをベクターにロードしてからソートする必要がありますか?
どんな助けでも大歓迎ですありがとう
c++ - boost::ptr_vector のコンテナ クラスを作成する
boost::ptr_vector のコンテナ クラスを作成しようとしていますが、イテレータを動作させるのに少し苦労しています..
これは、実装しようとしているメンバー関数の1つです。
私が得ているエラーは次のとおりです。
これを修正する方法のアイデアはありますか?
c++ - boost::ptr_vector からテンプレート パラメータを取得する
からboost::ptr_vector<T>を取得しようとしていますTが、 のboost::ptr_vector<T>::value_typeようT*です。どうすれば入手できTますか?
ドキュメントを見ると、次のように表示されます。
どれも役に立ちません...