問題タブ [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++ - 標準コンテナを前方宣言しますか?
ヘッダファイルで標準コンテナを前方宣言することは可能ですか? たとえば、次のコードを見てください。
私はこのようなことができるようにしたい:
これはできますか?
c++ - std::string のインスタンスを小文字に変換する方法
std::string
aを小文字に変換したい。機能は承知しておりますtolower()
。std::string
ただし、過去にこの関数に問題がありましたが、各文字を反復処理する必要があるため、とにかく理想的ではありません。
100% の確率で機能する代替手段はありますか?
c++ - C++ std::map への挿入時の奇妙なバグ
いくつかの値のペアを std::map に挿入しようとしています。最初のケースでは、マップへのポインターを受け取り、それを逆参照し、添え字演算子を使用して値を割り当てます。すなわち
後でコレクションを反復処理しようとすると、最初の (map.begin()) アイテムを除くすべてのケースで、値属性に null を含むキーと値のペアが返されます。奇妙なことは、マップの挿入機能を介して挿入を行うと、すべてがうまくいくことです。
これはなぜでしょうか?2 つの方法は機能的に同等ではありませんか? コンテキストのために、実際のコードのスニペットを以下に貼り付けました
私はすべてのアイデアがありません。誰か提案がありますか?
c++ - sscanfの代わりに何を使用すればよいですか?
sscanfが解決する(文字列から物を抽出する)という問題があります。sscanfはタイプセーフではなく、古くて恐ろしいので、私は好きではありません。私は賢くなり、C++標準ライブラリのより新しい部分を使用したいと思っています。代わりに何を使用すればよいですか?
c++ - std::queueの反復
繰り返す必要がありstd::queue
ます。www.cplusplus.comによると:
デフォルトでは、特定のキュークラスにコンテナクラスが指定されていない場合、標準のコンテナクラステンプレートdequeが使用されます。
それで、どういうわけか、キューの基になる両端キューに到達して、それを反復処理できますか?
c++ - C++ valarray とベクトル
ベクター大好きです。彼らは気の利いた、速いです。しかし、valarray と呼ばれるものが存在することは知っています。ベクトルの代わりに valarray を使用するのはなぜですか? valarray には構文糖衣があることは知っていますが、それ以外に、いつ役立つのでしょうか?
c++ - VCが間違った演算子を選択する<<最初の呼び出しでのみオーバーロードします。バグ?
影響のないコードをすべて削除するのに少し時間を費やしましたが、これが私の問題です。
--- File.h ---
--- File.cpp ---
--- main.cpp ---
そしてこれは、cl
オプション/D "WIN32" /D "_UNICODE" /D "UNICODE"
を使用してビルドして実行した後の出力ファイルです
--- test.txt ---
基本的に何が起こるかというと、最初のoperator<<
呼び出しmain
はメンバーメソッドにバインドされます
一方、2番目のものは(正しく)バインドされています
したがって、異なる出力が得られます。
次のいずれかを実行した場合、これは発生しません。
- 列をなして
File::CreateOutput
DataOutput
非テンプレートのものに変更しますElement=char
- 最初の呼び出し
*output;
の前に追加operator<<
これを望ましくないコンパイラの動作と見なすのは正しいですか?
これについて何か説明はありますか?
ああ、私は現在この簡略化されたコードをテストするためにVC7を使用していますが、VC9とVC8で元のコードを試しましたが、同じことが起こっていました。
どんな助けや手がかりさえもありがたいです
c++ - std :: mapでスレッドセーフな操作は何ですか?
私が持っているとしましょう:
次の関数スレッドは安全ですか?
つまり、多くのスレッド間で共有されるこの巨大な読み取り専用マップが必要です。しかし、それを検索してもスレッドセーフかどうかはわかりません。
すべてが最初に一度書き込まれます。
その後、複数のスレッドがそこから読み取ります。
私はこれをできるだけ速くするためにロックを避けようとしています。(私が知っているヤヤの可能性のある時期尚早の最適化)
c++ - std::valarray を使用して連続した 2D 配列を保存/操作するにはどうすればよいですか?
std::valarray
を使用して 2D 配列を保存/操作するにはどうすればよいですか?
行/列インデックスによってアクセスされる要素を持つ 2D 配列の例を見たいと思います。この擬似コードのようなもの:
そのような配列を初期化する方法の例もいいでしょう。
Boost.MultiArray、Boost.uBlas、および Blitz++ については既に認識しています。
私のユースケースで valarray を使用すべきではない理由を自由に答えてください。ただし、多次元配列のメモリを連続した (列 x 行) ブロックにする必要があります。Java スタイルのネストされた配列はありません。
c++ - C++ での順列と組み合わせのライブラリ関数
n要素からk要素のすべての組み合わせと順列を与えるためにC++で最も広く使用されている既存のライブラリは何ですか?
アルゴリズムではなく、既存のライブラリまたはメソッドを求めています。
ありがとう。