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

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

4
C / C ++での文字( 'a')のサイズ
CおよびC ++の文字サイズはどれくらいですか?私が知る限り、charのサイズはCとC ++の両方で1バイトです。 C: #include <stdio.h> int main() { printf("Size of char : %d\n", sizeof(char)); return 0; } C ++の場合: #include <iostream> int main() { std::cout << "Size of char : " << sizeof(char) << "\n"; return 0; } 驚きはありません、どちらも出力を提供します: Size of char : 1 今、私たちは、文字は次のように表現されていることを知っている'a'、'b'、'c'、'|'、...だから、僕はこれらに上記のコードを変更しました: C: #include <stdio.h> int …
298 c++  c  types 

26
経過時間を簡単に測定
私はtime()を使用しようとしていますてプログラムのさまざまなポイントを測定ています。 わからないのは、変更前と変更後の値が同じなのはなぜですか。これは私のプログラムのプロファイルを作成するための最良の方法ではないことを理解しています。何か時間がかかるのを確認したいだけです。 printf("**MyProgram::before time= %ld\n", time(NULL)); doSomthing(); doSomthingLong(); printf("**MyProgram::after time= %ld\n", time(NULL)); 私が試してみました: struct timeval diff, startTV, endTV; gettimeofday(&startTV, NULL); doSomething(); doSomethingLong(); gettimeofday(&endTV, NULL); timersub(&endTV, &startTV, &diff); printf("**time taken = %ld %ld\n", diff.tv_sec, diff.tv_usec); の結果をどのように読み**time taken = 0 26339ますか?つまり、26,339ナノ秒= 26.3ミリ秒ということですか。 について**time taken = 4 45025はどうですか、それは4秒と25ミリ秒を意味しますか?
297 c++  c  linux  time  measurement 

14
ベクトルからサブベクトルを抽出する最良の方法?
私が持っていると仮定しstd::vector(せのはそれを呼び出すmyVecサイズの)N。要素XからYまでのコピーで構成される新しいベクトルを作成する最も簡単な方法は何ですか(0 <= X <= Y <= N-1)。たとえば、sizeのベクトルをmyVec [100000]通過myVec [100999]します150000。 これをベクトルで効率的に実行できない場合、代わりに使用する必要がある別のSTLデータ型はありますか?
295 c++  stl  vector  range 

5
メンバー関数でスレッドを開始
std::thread引数を取らずに返すメンバー関数を使ってを作成しようとしていますvoid。機能する構文を理解できません。コンパイラは何があっても文句を言います。実行するspawn()a std::threadを返すように実装する正しい方法は何test()ですか? #include <thread> class blub { void test() { } public: std::thread spawn() { return { test }; } };


9
マップのC ++マップをループするにはどうすればよいですか?
std::mapC ++でループするにはどうすればよいですか?私の地図は次のように定義されています: std::map< std::string, std::map<std::string, std::string> > たとえば、上記のコンテナは次のようなデータを保持します。 m["name1"]["value1"] = "data1"; m["name1"]["value2"] = "data2"; m["name2"]["value1"] = "data1"; m["name2"]["value2"] = "data2"; m["name3"]["value1"] = "data1"; m["name3"]["value2"] = "data2"; このマップをループしてさまざまな値にアクセスするにはどうすればよいですか?

15
==と!=は相互に依存していますか?
私はC ++で演算子オーバーロードについて学んだ、と私はそれを見る==と!=、単純にユーザー定義型用にカスタマイズすることができますいくつかの特別な機能です。しかし、私の懸念は、なぜ2つの別個の定義が必要なのかということです。私があればと思ったa == b事実である場合、a != b定義によって、あるため、自動的に偽の、およびその逆で、かつ、他の可能性がないa != bです!(a == b)。そして、これが真実ではない状況を想像することはできませんでした。しかし、おそらく私の想像力は限られていますか、それとも私は何かについて無知ですか? もう1つの観点から1つを定義できることは知っていますが、これは私が求めていることではありません。また、値による比較や同一性によるオブジェクトの比較の違いについても質問していません。または、2つのオブジェクトが同時に等しいか等しくないかどうか(これは間違いなくオプションではありません!これらは相互に排他的です)。私が尋ねているのはこれです: 2つのオブジェクトが等しいことについて質問しても意味がないが、等しくないことについて質問しても意味がない状況はありますか?(ユーザーの観点から、または実装者の観点から) このような可能性がない場合、なぜC ++ではこれら2つの演算子が2つの異なる関数として定義されているのでしょうか。

11
C ++の論理XOR演算子?
そんなことありますか?それが実際に必要になったのは初めてですが、Stroustrupにリストされているものはありません。私は書くつもりです: // Detect when exactly one of A,B is equal to five. return (A==5) ^^ (B==5); しかし、^^演算子はありません。^ここでビット単位を使用して正しい答えを得ることができますか(trueとfalseのマシン表現に関係なく)?私はミックス決して&および&&、または|そして||私はそれを行うことを躊躇して、^と^^。 bool XOR(bool,bool)代わりに自分の関数を書くほうが快適です。

24
シングルトン:どのように使用すべきか
編集:別の質問から私はシングルトンに関する多くの質問/回答へのリンクを含む回答を提供しました:シングルトンの詳細についてはこちら: だから私はシングルトンのスレッドを読んだ:良いデザインか松葉杖か? そして、議論はまだ激化しています。 シングルトンをデザインパターン(良い点と悪い点)と見なしています。 シングルトンの問題はパターンではなく、むしろユーザー(すみません)です。誰もが彼らの父親は、それらを正しく実装できると考えています(そして、私が行った多くのインタビューから、ほとんどの人はそうすることができません)。また、誰もが正しいシングルトンを実装できると考えているため、パターンを悪用し、不適切な状況で使用します(グローバル変数をシングルトンに置き換えます!)。 したがって、回答する必要がある主な質問は次のとおりです。 いつシングルトンを使うべきか シングルトンをどのように正しく実装しますか この記事に対する私の期待は、シングルトンを正しく使用するための信頼できる情報源(および複数のサイトを検索する必要があるのではなく)を1か所にまとめることができることです。また、アンチユーセージのリストと、それらが機能しない理由を説明する一般的な不良実装のリストと、適切な実装の弱点も適切です。 だからボールを​​転がしてください: 私は手を挙げて、これが私が使うものだと言いますが、おそらく問題があります。 私は彼の本「Effective C ++」の主題の「スコットマイヤーズ」の扱いが好きです シングルトンを使用するのに適した状況(多くはない): ロギングフレームワーク スレッドリサイクルプール /* * C++ Singleton * Limitation: Single Threaded Design * See: http://www.aristeia.com/Papers/DDJ_Jul_Aug_2004_revised.pdf * For problems associated with locking in multi threaded applications * * Limitation: * If you use this Singleton (A) within …

7
名前空間+関数とクラスの静的メソッド
関連する関数のセットを持っている、または作成しようとしているとしましょう。それらが数学に関連しているとしましょう。組織的には、 これらの関数を記述してMyMath名前空間に配置し、次のように参照しますMyMath::XYZ() 呼び出されるクラスを作成し、MyMathこれらのメソッドを静的にして、同様に参照しますMyMath::XYZ() ソフトウェアを整理する手段として、なぜどちらかを選択するのですか?

19
C / C ++で余分な#includeを検出していますか?
ファイルのヘッダーセクションが常に大きくなるのに、小さくならないことがよくあります。ソースファイルの存続期間を通じて、クラスは移動してリファクタリングされている可能性があり、そこに存在する#includes必要のないものも少なくない可能性があります。それらをそこに残すと、コンパイル時間が長くなり、不要なコンパイル依存関係が追加されます。どれがまだ必要かを理解しようとするのは、かなり退屈な作業です。 不要な#includeディレクティブを検出して、安全に削除できるものを提案できるツールはありますか? リントは多分これをしますか?

19
Cのシフト演算子を使用した乗算と除算は実際には高速ですか?
乗算と除算は、ビット演算子を使用して実現できます。 i*2 = i<<1 i*3 = (i<<1) + i; i*10 = (i<<3) + (i<<1) 等々。 直接(i<<3)+(i<<1)使用i*10するよりも、sayを使用して10を乗算する方が実際に高速ですか?この方法で乗算または除算できない入力の種類はありますか?


10
C / C ++インクルードヘッダーファイルの順序
どのような順序でファイルを指定する必要がありますか。つまり、あるヘッダーを別のヘッダーの前に含める理由は何ですか。 たとえば、システムファイル、STL、およびBoostはローカルインクルードファイルの前または後にありますか?
287 c++  c 

20
Android用のCまたはC ++でアプリケーションを作成しますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 ゲームを開発/ Androidに移植しようとしていますが、それはCで行われ、AndroidはJavaをサポートしていますが、Cアプリをそこにインストールする方法があるはずだと確信しています。これを達成する方法を知っている人はいますか?
286 c++  c  android 

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