問題タブ [std]
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++ - boost::shared_ptr 標準コンテナ
クラス foo があり、std::map を使用して boost::shared_ptrs を保存したいとします。
新しい foo_sp をマップに追加したが、使用したキーが既に存在する場合、既存のエントリは削除されますか? 例えば:
元のポインター (p) は、p2 に置き換えられたときに解放されますか? そうなると確信していますが、質問/共有する価値があると思いました.
c++ - Visual Studio 2008 SP1 で std::tr1::mem_fun を使用するにはどうすればよいですか?
VS2008 SP1のドキュメントでは、std::tr1::mem_fun
.
では、なぜ、 を使用しようとするとstd::tr1::mem_fun
、このコンパイル エラーが発生するのでしょうか?:
同時に、std::tr1::function
問題なく使用できます。
コンパイルしようとしているサンプルコードは次のとおりです。これは、のインスタンスを呼び出すことになっていTakesInt
ますTest
。function<void (int)>
mem_fun
私のコードを使用std::mem_fun
してもコンパイルされないため、私は の tr1 バージョンを使用しようとしています! 問題が私のコードにあるのか、それとも tr1 のmem_fun
. これは C++ コンパイラ エラーです (または、私だけかもしれません!)。
更新:そうですね。答えは mem_fn! と正しく綴ることです。
ただし、それを修正しても、コードはまだコンパイルされません。
コンパイラエラーは次のとおりです。
c - Linux用CライブラリのSetFileLength()のような関数
LinuxのCライブラリにファイルの長さを設定できる関数はありますか?Windowsでは、SetFileLength()関数があることを知っています。ない場合、ファイルを削除して書き直さずにファイルを短縮する最良の方法は何ですか?
c++ - ベクトルをバイナリ検索して要素を見つけるために、標準ライブラリにはどの関数がありますか?
私はノード構造体を持っています
ソートされたベクトルで。
ベクトルのバイナリ検索を実行して要素を見つけるアルゴリズムに関数があるかどうか疑問に思っています。
c++ - std::pair を分解するための標準 C++ 関数オブジェクトはありますか?
std::pair の要素にアクセスするための事実上の標準 (つまり、TR1 または Boost) C++ 関数オブジェクトがあるかどうかは誰にもわかりませんか? keys
過去 24 時間に 2 回、 Perl ハッシュの関数のようなものがあればいいのにと思いました。たとえば、std::map オブジェクトに対して std::transform を実行し、すべてのキー (または値) を別のコンテナーにダンプするとよいでしょう。もちろん、そのような関数オブジェクトを作成することもできますが、多くの注目を集めたものを再利用したいと考えています。
c++ - std::auto_ptr 演算子 = ごみ箱オブジェクトはなぜですか?
std::auto_ptr と割り当てに問題があるようで、参照されているオブジェクトが何らかの理由で破棄されているようです。
私はそれを追跡しましたが、rhs ポインターをラップするために作成された一時的な std::auto_ptr_byref() からのポインターの転送で問題が発生しているように見えます (デバッガーで値を監視することにより)。これは、auto_ptr(auto_ptr_ref<_Ty> _Right) 関数に入るときに _Right に含まれる値は正しいですが、終了するときに _Myptr に含まれる値はジャンクです。
最初は、継承を台無しにしてインターフェイスを切り離していると思っていましたが、これは、クラスに親クラスが 1 つしかない場合でも発生します。
ブラケットを使用するか、rhs で明示的な std::auto_ptr temp を持つように変更することで、覚えていれば = new を回避できますが、これはもちろんエラーが発生しやすくなります。
このバージョンのライブラリが壊れているだけですか、それとも根本的な問題が発生していないだけですか?
また、std::auto_ptr を boot::shared_ptr に割り当てることで同様の問題が発生しましたが、現在は完全に削除されており、どの構文が問題を引き起こしたかは思い出せません。
c++ - mem_fun が失敗し、pthread とクラス ptr
pthread
パラメータとして取り込んで、問題を解決するためにvoid *(*start_routine)(void* userPtr)
使用できることを望んでいましたが、できません。std::mem_fun
void * threadFunc()
関数を使用してuserPtr
、クラスとして機能させたいと思います(userPtr->threadFunc())
。私が使用できるのと同様の機能はありstd::mem_func
ますか?
c++ - ifstream、行末で次の行に移動しますか?
std::ifstream を使用して次の行を検出して移動するにはどうすればよいですか?
エラーが発生した場合は教えてくれると思いますが、エラーが発生するとストリームは機能しなくなります。別のintを読み取る前に、行末にいるかどうかを確認するにはどうすればよいですか?
c++ - 7zアーカイブ形式のバイナリデータを書き込むにはどうすればよいですか?
7zアーカイブ形式の形式の説明とソースコードを注いでいますが、有効なコンテナを作成するのにまだ問題があります。空のコンテナを作成できると思います...とにかくここから始めます:
私の主な問題は、std :: ofstream :: write()の理解不足だと思います。バイトは「unsignedchar」であり、UInt64とUInt32は両方とも「unsignedlong」です。
UPDATE0:誰もが指摘しているように、これをビッグエンディアンのマシンで実行すると問題になります。ここではそうではありません。Fredrik Janssenによると、非配列のアドレスをキャストする必要があります。また、CrcCalc()はLZMASDKの関数であることにも言及する必要があります。&を少し追加すると、いくつかの問題が発生しているのは、最初のunsignedchar[6]です。
UPDATE1:以下の空のアーカイブファイルを取得するための作業コード。
注:CrcGenerateTable()およびCrcCalc()は、LZMASDKからのものです。