問題タブ [stdstring]

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.

0 投票する
5 に答える
2313 参照

c++ - std 文字列の途中で null を設定しても効果がない理由

検討

配列 astd::stringと同じように動作すると思います。charつまり、文字列の途中にヌル文字を挿入すると、文字列が「終了」します。しかし、そうではありません。私の予想は間違っていますか?

0 投票する
3 に答える
887 参照

c++ - 生のポインタなしでマップのキーをコピーすることは避けてください

キーがstd::stringであるstd::mapにペアを挿入するたびに、2つのコピーが作成されます。生のポインタの使用を避けることはできますが、例外として安全ではありません。生のポインターの代わりにスマートポインターを使用する方法はありますか?

コード例:

出力:

0 投票する
1 に答える
211 参照

c++ - 動的に割り当てられたオブジェクトのメンバ パラメータとしての STD::string

オブジェクトのセットを動的に割り当てたい(数百になる可能性があります)。これらのオブジェクトの一部はテキスト フィールドです。std::string は優れた文字列操作を提供するため、std:string型のオブジェクト メンバー パラメータを使用することをお勧めします。

ただし、std::string は動的にサイズ変更可能なオブジェクトです。私にとって、これは std::string を含む動的に割り当てられたオブジェクトに反します: std::string が計画よりも大きくなると、割り当てられたメモリのオーバーフローが発生する可能性があります。

  • 動的に割り当てられたオブジェクトのパラメーターとして std::string が適しているかどうか、アドバイスをお願いできますか?
  • どのように std::string を操作するので、メモリ オーバーフローが発生しませんか?
  • 何百ものオブジェクトが動的に割り当てられる場合でも、std::string はメンバ パラメータとして適していますか?
0 投票する
3 に答える
38540 参照

c++ - 引数のコレクションを使用してstd::stringをフォーマットするにはどうすればよいですか?

std::string一連の引数を渡してフォーマットすることは可能ですか?

現在、私はこのように文字列をフォーマットしています:

ただし、ベクトルのサイズは実行時に決定されます。sprintf_s引数のコレクションを取り、std :: string / char *をフォーマットするのと同様の関数はありますか?私の開発環境はMSVisualC ++2010Expressです。

編集: 私は似たようなことを達成したいと思います:

0 投票する
4 に答える
63896 参照

c++ - cout出力をstd::stringに取得する

私は次のcoutステートメントを持っています。vsnprintf変数引数リストを変換してに格納するためにに渡す必要があるため、char配列を使用しMsgます。

coutC ++に出力を取得する方法はありますstd::stringか?

0 投票する
1 に答える
5098 参照

c++ - ヌル文字を含むSTLbasic_stringの長さ

std :: basic_stringに「\0」文字を挿入でき、.length()メソッドは影響を受けないのに、呼び出すchar_traits<char>::length(str.c_str())と最初の「\ 0」文字までの文字列の長さが得られるのはなぜですか?

例えば

0 投票する
1 に答える
13814 参照

c++ - STLキャラクター特性のポイントは何ですか?

SGI STLリファレンスのコピーに、キャラクター特性に関するページがありますが、これらがどのように使用されているかわかりません。それらはstring.h関数を置き換えますか?それらはによって使用されていないようですstd::string。たとえば、length()onのメソッドstd::stringはCharacterTraitslength()メソッドを使用していません。なぜキャラクター特性が存在し、実際に使用されているのですか?

0 投票する
4 に答える
47470 参照

c++ - "" を使用して std::string を初期化する方法は?

""(つまり、空の文字列)を使用して std::string 変数を初期化する際に問題に直面しています。以前は機能していたコードで奇妙な動作が発生しています。次の記述は間違っていますか?

次のコードを使用すると、すべて正常に動作します。

文字列リテラルは、コンパイラに依存する別のメモリ位置に格納されていると思います。私が見ている問題は、実際にそのストレージの破損を示している可能性がありますか? もしそうなら、それはclear() 関数の私の使い方によって隠されます.

ありがとう。

0 投票する
5 に答える
16412 参照

java - ユーザー入力 大文字と小文字を区別しない

ユーザー入力を読んでいます。equalsIgnoreCaseユーザー入力にどのように適用するのか疑問に思っていましたか?

0 投票する
4 に答える
6300 参照

c++ - 空きストアメモリが割り当てられていないstd::string

非常によく似た質問があります

glibcの文字列実装を使用してスタックにstd::stringを割り当てるにはどうすればよいですか?

しかし、もう一度尋ねる価値があると思います。

std::stringフリーストアにオーバーフローするローカルストレージを備えたものが必要です。std::basic_stringはテンプレートパラメータとしてアロケータを提供するので、ローカルストレージを使用してアロケータを作成し、それを使用して次のようにパラメータを設定する必要がbasic_stringあるようです。

inline_allocator期待どおりに機能するクラスを作成しようとしました。ストレージ用に10バイトを予約し、10バイトをbasic_string超える必要がある場合は、を呼び出します::operator new()。動作させることができませんでした。上記のコード行を実行する過程で、私のGCC4.5標準文字列ライブラリはコピーコンストラクターをinline_allocator4回呼び出します。のコピーコンストラクターを作成するための賢明な方法があるかどうかは私にはわかりませんinline_allocator

他のStackOverflowスレッドで、EricMelskiはChromiumのクラスへのこのリンクを提供しました。

http://src.chromium.org/svn/trunk/src/base/stack_container.h

これは興味深いですが、のドロップイン置換ではありません。これは、をコンテナstd::stringにラップするstd::basic_stringため、オーバーロードを呼び出して。operator->()に到達する必要があるためstd::basic_stringです。

この問題に対する他の解決策は見つかりません。良い解決策がないということでしょうか?そしてそれが本当なら、そしてstd::basic_string概念はstd::allocatorひどく欠陥がありますか?std::basic_stringつまり、これはとの非常に基本的で単純なユースケースである必要があるようstd::allocatorです。コンセプトstd::allocatorは主にプール向けに設計されていると思いますが、これもカバーする必要があると思います。

inline_allocator文字列ライブラリがbasic_stringコピーコンストラクタの代わりにアロケータの移動コンストラクタを使用するように書き直された場合、C++0xの右辺値参照の移動セマンティクスによって書き込みが可能になるようです。誰かがその結果の見通しが何であるか知っていますか?

私のアプリケーションは1秒あたり100万個の小さなASCII文字列を作成する必要があるため、に基づいて独自の固定長文字列クラスを作成するBoost.Arrayことになりました。これは正常に機能しますが、それでも気になります。