タグ付けされた質問 「stl」

10
C ++でベクターを介してリストを使用する意味は何ですか?
C ++リストとベクターを含む3つの異なる実験を実行しました。 中間に多くの挿入が含まれていた場合でも、ベクトルを使用したものはより効率的であることが証明されました。 したがって、質問:どの場合、リストはベクトルよりも意味がありますか? ほとんどの場合、ベクトルがより効率的であると思われ、それらのメンバーがどれだけ似ているかを考えると、リストにはどの利点が残っていますか? N個の整数を生成し、コンテナに入れて、コンテナがソートされたままになるようにします。挿入は、要素を1つずつ読み取り、最初の大きい要素の直前に新しい要素を挿入することにより、単純に実行されました。 リストを使用すると、ベクトルと比較して寸法が大きくなると屋根を通過します。 コンテナの最後にN個の整数を挿入します。 リストとベクトルの場合、時間は同じ桁数増加しましたが、ベクトルの場合は3倍高速でした。 コンテナにN個の整数を挿入します。 タイマーを開始します。 リストにはlist.sortを使用し、ベクターにはstd :: sortを使用してコンテナをソートします。タイマーを停止します。 繰り返しますが、時間は同じ桁で増加しますが、ベクトルでは平均で5倍速くなります。 引き続きテストを実行し、リストの方が良い例がいくつか見つかるかもしれません。 しかし、このメッセージを読んでいる皆さんの共同経験は、より生産的な答えを提供するかもしれません。 リストの使用がより便利だったり、パフォーマンスが向上したりする状況に出くわしたことがありますか?

3
構造体とstd :: pairの使用にはどのような違いがありますか?
私は経験が少ないC ++プログラマです。 を使用しSTL mapていくつかのデータを保存および操作したい場合、これらの2つのデータ構造アプローチの間に(パフォーマンスにも)意味のある違いがあるかどうかを知りたいと思います。 Choice 1: map<int, pair<string, bool> > Choice 2: struct Ente { string name; bool flag; } map<int, Ente> 具体的にはstruct、シンプルではなくを使用してオーバーヘッドがありますpairか?

7
大規模なアプリケーションではSTLを回避する必要がありますか?
これは奇妙な質問に聞こえるかもしれませんが、私の部署では次のような状況で問題が発生しています。 ここでは、処理できるように、必要に応じて動的にロードし、後でアンロードするサーバーアプリケーションで作業しています。パフォーマンスの問題。 しかし、私たちが使用している関数は、入力パラメーターと出力パラメーターをSTLオブジェクトとして渡しているため、Stack Overflowの回答で述べたように、これは非常に悪い考えです。(投稿にはいくつかの±ソリューションとハックが含まれていますが、すべてが非常に堅実に見えるわけではありません。) 明らかに、入力/出力パラメーターを標準のC ++型で置き換え、関数内で一度それらからSTLオブジェクトを作成できますが、これによりパフォーマンスが低下する可能性があります。 1台のPCで処理できないほど大きくなる可能性のあるアプリケーションをビルドすることを検討している場合、STLをテクノロジとしてまったく使用しないでください。 この質問についてのさらなる背景:質問について いくつかの誤解があるようです:問題は次のとおりです: 私のアプリケーションは作業を完了するために膨大な量のパフォーマンス(CPU、メモリ)を使用しているので、この作業を分割したいと思います(プログラムはすでに複数の関数に分割されているため)アプリケーションからいくつかのDLLを作成し、それらのDLLのエクスポートテーブルにいくつかの関数を配置することはそれほど難しくありません。これにより、次の状況が発生します。 +-----------+-----------+---- | Machine1 | Machine2 | ... | App_Inst1 | App_Inst2 | ... | | | | DLL1.1 | DLL2.1 | ... | DLL1.2 | DLL2.2 | ... | DLL1.x | DLL2.x | ... +-----------+-----------+---- App_Inst1はMachine1にインストールされているアプリケーションのインスタンスであり、App_Inst2はMachine2にインストールされている同じアプリケーションのインスタンスです。 DLL1.xはMachine1にインストールされているDLLで、DLL2.xはMachine2にインストールされているDLLです。 DLLx.1は、エクスポートされたfunction1をカバーします。 DLLx.2は、エクスポートされたfunction2をカバーします。 次に、Machine1でfunction1とfunction2を実行します。これによりMachine1がオーバーロードされることがわかっているため、App_Inst2にメッセージを送信して、そのアプリケーションインスタンスにfunction2を実行するように要求します。 …
24 c++  stl 

3
QT-C ++対Generic C ++およびSTL [非公開]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 5年前に閉鎖されました。 Ubuntu QQで最近C ++をブラッシュアップしています。すべてのQtフレームワーク、特にGUIの構築が大好きです。過去数年にわたってPyQtを使用していたとき、私はこれに非常に精通しました。 PyQtを使用する場合、QtでC ++を使用する場合に、より顕著な問題がいくつかありました。Qtには、Qt固有のC ++の拡張機能が多数あります。C ++とSTLについてまったく知識がなくても、C ++を使用してQtアプリケーションを作成することができます。 すぐに再び求人市場に出なければならないかもしれませんが、C ++のポジションを検討したいのですが、Qtに縛られすぎると、かつては手ごわいものだった汎用C ++で動作する能力が制限されます長い休眠状態でさびています。 Qtを避けるべきですか?GUIの構築にWxWidgetsまたはGTK ++を使用した方が良いでしょうか? 一般的なC ++とSTLの使用を許可/要求する、使用するのに最適なGUIフレームワークは何ですか?GUIフレームワークなどに関して、C ++プログラマーとしてどのように自分を最も市場性の高いものにするのでしょうか。
19 c++  qt  stl  gtk  pyqt4 

6
C ++開発でSTLを放棄するのは実用的ですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 一部の分野(ゲーム業界など)では、STLはお勧めできません。だから私の質問は次のとおりです:場合によってはSTLを使用しないことは本当に良い習慣ですか?もしそうなら、最新のC ++のSTLを使用しない最大の理由は何ですか?
19 c++  stl 

1
std :: vector <bool>はどのようにして生まれたのですか?
今日、事実上すべてのC ++開発者std::vector&lt;bool&gt;は、それが間違いではコンテナではないため、間違いであることに同意し、その使用例はstd::bitsetとにかく重複しています。 どのようにして標準に投票されましたか?当時は物議をかもしていましたか?主な支持論拠は何でしたか?
15 c++  history  stl 

5
例外を設計する方法
私は非常に簡単な質問に苦労しています: 現在、サーバーアプリケーションで作業しています。例外の階層を作成する必要があります(一部の例外は既に存在しますが、一般的なフレームワークが必要です)。どうすればこれを開始できますか? 私はこの戦略に従うことを考えています: 1)何が問題なのでしょうか? 何かが求められますが、これは許可されていません。 何らかの質問があり、許可されていますが、パラメーターが間違っているため機能しません。 何らかの質問があり、許可されていますが、内部エラーのために機能しません。 2)リクエストを開始しているのは誰ですか? クライアントアプリケーション 別のサーバーアプリケーション 3)メッセージ処理:サーバーアプリケーションを扱っているので、メッセージの送受信がすべてです。それでは、メッセージの送信がうまくいかない場合はどうでしょうか? そのため、次の例外タイプが発生する場合があります。 ServerNotAllowedException ClientNotAllowedException ServerParameterException ClientParameterException InternalException(サーバーがリクエストの送信元を知らない場合) ServerInternalException ClientInternalException MessageHandlingException これは例外階層を定義するための非常に一般的なアプローチですが、いくつかの明らかなケースが欠けているのではないかと心配しています。私がカバーしていない分野についてのアイデアがありますか、この方法の欠点を知っていますか、この種の質問に対するより一般的なアプローチがありますか(後者の場合、どこで見つけることができますか)? 前もって感謝します
11 design  c++  exceptions  stl 

2
STLを複数の共有ライブラリに静的にリンクすることの何が問題になっていますか?
ここにシナリオがあります: libA.soとlibB.soは両方とも同じSTLに静的にリンクします。 libA.soには、std :: stringを返すパブリックAPIがあります。 libB.soはこの関数を呼び出し、文字列のコピーを受け取ります。 文字列のlibB.soのコピーがスコープ外になると、文字列のデストラクタが呼び出されます。 コピーされた文字列を解放しようとするアプリケーションセグメントフォールト。 このように静的にリンクすることは悪いことを他の場所で読んだことがありますが、なぜそれが悪いのかをもっと理解したいと思います。上記のシーケンスがクラッシュする理由を誰かが説明できますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.