タグ付けされた質問 「c++」

C ++は汎用プログラミング言語です。もともとCの拡張として設計され、構文は似ていますが、現在は完全に異なる言語になっています。このタグは、C ++コンパイラでコンパイルされる(される)コードに関する質問に使用します。特定の標準リビジョン[C ++ 11]、[C ++ 14]、[C ++ 17]または[C ++ 20]などに関連する質問には、バージョン固有のタグを使用します。


9
C ++列挙型は署名されていますか、署名されていませんか?
C ++列挙型は署名されていますか、署名されていませんか?そして、拡張によって、それが<=あなたの最大値であることを確認することによって入力を検証し、> =あなたの最小値を除外することは安全です(0から開始し、1ずつ増加したと仮定します)?
107 c++  enums 

10
「gdbがコード署名されていることを確認してください-taskgated(8)を参照してください」-自作のコードが署名されたgdbをインストールする方法
私はosx 10.8.4の下にあり、homebrewを使用してgdb 7.5.1をインストールしました(動機は--with-pythonなどの新しい機能を備えた新しいgdbを取得します...) 私が得るc ++ Eclipseプロジェクト内でデバッグを実行すると、長い話は短くなります: Error in final launch sequence Failed to execute MI command: -exec-run Error message from debugger back end: Unable to find Mach task port for process-id 46234: (os/kern) failure (0x5). (please check gdb is codesigned - see taskgated(8)) Unable to find Mach task port for …
107 c++  eclipse  macos  gdb  homebrew 

4
stringstreamは正確には何をしますか?
私は昨日からC ++を学ぼうとしていますが、このドキュメントを使用しています:http : //www.cplusplus.com/files/tutorial.pdf(32ページ)。ドキュメントにコードを見つけて実行しました。価格にRs 5.5、数量に整数を入力してみましたが、出力は0でした。5.5と6を入力してみましたが、出力は正しいものでした。 // stringstreams #include <iostream> #include <string> #include <sstream> using namespace std; int main () { string mystr; float price = 0; int quantity = 0; cout << "Enter price: "; getline (cin,mystr); stringstream(mystr) >> price; cout << "Enter quantity: "; getline (cin,mystr); stringstream(mystr) >> quantity; …
107 c++  sstream 

3
チェスプログラムを開発するときに、以下の方向配列を指定された値で初期化することの重要性は何ですか?
私は競合プログラミングに不慣れですが、多くの優れたプログラマーがコードに次の4行(特に配列を含むもの)を持っていることに気づきました。 int di[] = { 1, -1, 0, 0, 1, -1, 1, -1 }; int dj[] = { 0, 0, 1, -1, 1, -1, -1, 1 }; int diK[] = { -2, -2, -1, 1, 2, 2, 1, -1 }; int djK[] = { -1, 1, 2, 2, 1, -1, …
106 c++  c  chess 

9
C ++クラスで仮想メソッドを使用する場合のパフォーマンスコストはどれくらいですか?
C ++クラス(またはその親クラスのいずれか)に少なくとも1つの仮想メソッドがあることは、クラスに仮想テーブルがあり、すべてのインスタンスに仮想ポインターがあることを意味します。 したがって、メモリコストは非常に明確です。最も重要なのは、インスタンスのメモリコストです(特に、インスタンスが小さい場合、たとえば、単に整数を含めることを意図している場合)。この場合、すべてのインスタンスに仮想ポインタがあると、インスタンスのサイズが2倍になる可能性があります。仮想テーブルが使用するメモリ領域。実際のメソッドコードが使用する領域と比較すると、通常は無視できると思います。 これは私に私の質問をもたらします:メソッドを仮想化するために測定可能なパフォーマンスコスト(つまり速度への影響)はありますか?すべてのメソッド呼び出し時に、実行時に仮想テーブルでルックアップが行われるため、このメソッドへの呼び出しが非常に頻繁であり、このメソッドが非常に短い場合、測定可能なパフォーマンスヒットがある可能性があります。それはプラットフォームに依存すると思いますが、誰かがいくつかのベンチマークを実行していますか? 私が尋ねている理由は、プログラマーが仮想メソッドの定義を忘れているために起こったバグに遭遇したからです。私がこの種の間違いを見たのはこれが初めてではありません。そして、私はそれが必要でないことが確実であるときに仮想キーワードを削除するのではなく、なぜ必要なときに仮想キーワードを追加するのかと考えました。パフォーマンスコストが低い場合は、チームで以下をお勧めします。デストラクタを含むすべてのメソッドをデフォルトで仮想化し、すべてのクラスで、必要な場合にのみ削除します。気が狂ってる?

3
std :: shared_ptrスレッドセーフティの説明
私はhttp://gcc.gnu.org/onlinedocs/libstdc++/manual/shared_ptr.htmlを読んでいますが、いくつかのスレッドセーフティの問題はまだわかりません: 標準では、参照カウントがスレッドセーフで処理され、プラットフォームに依存しないことが保証されています。 同様の問題-標準では、1つのスレッド(最後の参照を保持している)のみが共有オブジェクトで削除を呼び出すことが保証されていますよね? shared_ptrは、それに格納されているオブジェクトのスレッドセーフを保証しませんか? 編集: 疑似コード: // Thread I shared_ptr<A> a (new A (1)); // Thread II shared_ptr<A> b (a); // Thread III shared_ptr<A> c (a); // Thread IV shared_ptr<A> d (a); d.reset (new A (10)); スレッドIVでreset()を呼び出すと、最初のスレッドで作成されたAクラスの以前のインスタンスが削除され、新しいインスタンスに置き換えられますか?さらに、IVスレッドでreset()を呼び出した後、他のスレッドには新しく作成されたオブジェクトのみが表示されますか?
106 c++  c++11  shared-ptr 

5
プログラミングを教えるのに役立つLinux C / C ++デバッガー(またはgdbのフロントエンド)はどれですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 私は初心者に一種の「ライト」C ++プログラミングコースを教えています(「ライト」とは、ポインタもクラスもないことを意味し、単純な古いCに加えて、参照とSTL文字列とベクトルを意味します)。学生はプログラミングの経験がありません。そのため、インタラクティブデバッガーを使用すると、プログラムのフロー、変数、再帰を理解するのに役立つと思います。 このコースはLinuxで教えられています。gdbを使用するように教えるのはやり過ぎです(ほとんどの機能を使用したり理解したりはしません)。シンプルで使いやすいものが必要です。プログラムが現在どの行にあるか、スタックに何があるか(ローカル変数、以前の呼び出しなど)を確認します。古いTurbo PascalやTurbo C ++ Borlandのデバッガー、またはVisual Studioデバッガーに似ているように見えます。 ありがとうございました、
106 c++  linux  debugging 

4
DLLとの間でオブジェクト、特にSTLオブジェクトを安全に渡すにはどうすればよいですか?
C ++ DLLとの間でクラスオブジェクト、特にSTLオブジェクトを渡すにはどうすればよいですか? 私のアプリケーションはDLLファイルの形式でサードパーティのプラグインとやり取りする必要があり、これらのプラグインがどのコンパイラでビルドされるかを制御できません。STLオブジェクトの保証されたABIがないことを承知しており、アプリケーションを不安定にすることを心配しています。
106 c++  windows  dll  stl  abi 


2
C ++ 20は、ファイルに格納されるソースコードを義務付けていますか?
しかし、少し奇妙な質問ですが、私が正しく覚えていれば、C ++ソースコードでは、ファイルシステムにファイルを格納する必要はありません。 カメラを介して手書きの紙をスキャンするコンパイラーがあれば、適合実装になります。実際にはそれほど意味がありませんが。 ただし、C ++ 20はでソースの場所を追加しfile_nameます。これは、ソースコードを常にファイルに保存する必要があることを意味しますか?

9
「便利な」C ++バイナリ検索アルゴリズムはどこで入手できますか?
std::binary_search標準ライブラリの<algorithm>ヘッダーのようなC ++ STLコンテナーと互換性のあるバイナリ検索アルゴリズムが必要ですが、要素が存在するかどうかを示す単純なブール値ではなく、結果を指すイテレーターを返す必要があります。 (補足として、binary_searchのAPIを定義したとき、標準委員会は一体何を考えていましたか?) ここでの主な懸念は、バイナリ検索の速度が必要であることです。そのため、以下で説明するように、他のアルゴリズムでデータを見つけることができますが、データがソートされているという事実を利用して、バイナリの利点を得たいと思います。線形検索ではなく検索。 これまでlower_boundとupper_boundデータが欠落している場合失敗します。 //lousy pseudo code vector(1,2,3,4,6,7,8,9,0) //notice no 5 iter = lower_bound_or_upper_bound(start,end,5) iter != 5 && iter !=end //not returning end as usual, instead it'll return 4 or 6 注:コンテナーと互換性がある限り、std名前空間に属さないアルゴリズムを使用しても問題ありません。同様に、言いますboost::binary_search。

4
透明コンパレータとは何ですか?
C ++ 14では、連想コンテナはC ++ 11から変更されたようです– [associative.reqmts] / 13はこう言っています: メンバ関数テンプレートはfind、count、lower_bound、upper_bound、およびequal_rangeタイプがない限り、オーバーロードの解決に参加してはならないCompare::is_transparent存在します。 コンパレータを「透明」にする目的は何ですか? C ++ 14には、次のようなライブラリテンプレートも用意されています。 template <class T = void> struct less { constexpr bool operator()(const T& x, const T& y) const; typedef T first_argument_type; typedef T second_argument_type; typedef bool result_type; }; template <> struct less<void> { template <class T, class U> …
106 c++  c++14  c++-faq 

10
windows.hが含まれているとstd :: minが失敗するのはなぜですか?
#include <algorithm> #include <Windows.h> int main() { int k = std::min(3, 4); return 0; } Windows.hをインクルードした場合、ウィンドウは何をしますか?std::minVisual Studio 2005 では使用できません。エラーメッセージは次のとおりです。 error C2589: '(' : illegal token on right side of '::' error C2059: syntax error : '::'

6
C ++のテンプレートクラスから継承する
テンプレートクラスAreaがあり、メンバー変数T area、a T getArea()、void setArea(T)メンバー関数があるとします。 とArea入力して、特定のタイプのオブジェクトを作成できますArea<int>。 これで、クラスRectangleを継承するAreaクラスができました。それRectangle自体はテンプレートではないので、と入力できませんRectangle<int>。 オブジェクトの継承Areaタイプをどのように特化しRectangleますか? 編集:申し訳ありませんが、明確にするのを忘れていました-私の質問は、エリアを特殊化せずに継承できるかどうかです。そのため、エリアは整数のエリアとして継承されませんが、エリア長方形はタイプを特殊化できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.