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

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

5
徹底的で詳細なg ++警告を有効にするフラグ
多くの場合、Cの下gccでは、次の警告フラグのセットから開始します(複数のソースから痛々しくアセンブルされます)。 -Wall -Wextra -Wformat-nonliteral -Wcast-align -Wpointer-arith -Wbad-function-cast \ -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Winline -Wundef \ -Wnested-externs -Wcast-qual -Wshadow -Wwrite-strings -Wno-unused-parameter \ -Wfloat-equal -pedantic -ansi 私はこの警告のセットを使って(少なくともデバッグバージョン)をビルドし、可能な限りすべて(通常はすべて)を修正し、フラグが適切でないか修正できない場合(ほとんどの場合)にのみフラグを削除します。-Werrorコンパイル中に離れなければならない場合は、追加することもあります。 私はC ++を採用しているだけで(そう、私は時代から15年遅れています)、右足から始めたいと思います。 私の質問は次のとおりです。誰かがC ++のプリコンパイルされた同様の完全な警告フラグのセットを持っていますかg++?(私はそれらの多くが同じになることを知っています。)
122 c++  g++  warnings 

9
C ++ SFINAEの例?
テンプレートのメタプログラミングについてもっと知りたいです。SFINAEが「置換の失敗はエラーではない」の略であることを知っています。しかし、誰かがSFINAEの良い使い方を私に示すことができますか?

11
C ++ Boostライブラリを使用する利点は何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 だから、私はずっと読んでいて、Boostライブラリーは実際に(私の店ではなく)多く使われているようです。どうしてこれなの?そして、何がそんなに素晴らしいのですか?
122 c++  boost 

10
ループのないC ++で配列の内容をstd :: vectorにコピーするにはどうすればよいですか?
後で処理するために保存する必要があるプログラムの別の部分から関数に渡される値の配列があります。データを処理する前に関数が呼び出される回数がわからないため、動的ストレージ構造が必要なので、を選択しましたstd::vector。push_backすべての値に対して個別に標準ループを実行する必要はありませんmemcpy。に似たものを使用してすべてをコピーできると便利です。
122 c++  stl  vector  copy 

3
if(0)を使用して、動作するはずのスイッチのケースをスキップしていますか?
C ++のswitchステートメントの2つのケースで、両方とも3番目のケースに分類したいという状況があります。具体的には、2番目のケースは3番目のケースにフォールスルーし、最初のケースも2番目のケースを通過せずに3番目のケースにフォールスルーします。 私はばかげた考えを持っていて、それを試しました、そしてそれはうまくいきました!2番目のケースをif (0) {...で包みました}。次のようになります。 #ifdef __cplusplus # include <cstdio> #else # include <stdio.h> #endif int main(void) { for (int i = 0; i < 3; i++) { printf("%d: ", i); switch (i) { case 0: putchar('a'); // @fallthrough@ if (0) { // fall past all of case 1 (!) …

8
Qt Creator-プロジェクトエラー:Xcodeが正しく設定されていません。/ usr / bin / xcodebuildを実行して、使用許諾契約を確認する必要がある場合があります。
Qt 5.5をインストールしたばかりで、OS Xで初めてQt Creatorを使用しています。最初にQtをインストールしたときに、「Xcode 5がインストールされていません」というエラーメッセージが表示されました(Xcode 7ベータ版を持っています)。 、しかしインストールはとにかく正常に完了しました。 ここで、プロジェクトを開始または開くと、エラーが発生します。 プロジェクトエラー:Xcodeが正しく設定されていません。/ usr / bin / xcodebuildを実行して、使用許諾契約を確認する必要がある場合があります。 /usr/bin/xcodebuildターミナルで実行すると、次のようになります。 xcode-select:エラー:ツール 'xcodebuild'にはXcodeが必要ですが、アクティブな開発者ディレクトリ '/ Library / Developer / CommandLineTools'はコマンドラインツールのインスタンスです XcodeがQt Creatorとどのように関係するのかはわかりませんが、クロスプラットフォームの互換性のためにライブラリへのアクセスに関係がある場合を除きますが、この問題を修正する方法はありますか?
121 c++  xcode  macos  qt  qt-creator 

3
どのC ++スマートポインター実装を利用できますか?
比較、長所、短所、およびいつ使用するか? これはからのスピンオフです ガベージコレクションスレッド派生したもので、私が単純な答えだと思ったものは、特定のスマートポインターの実装に関する多くのコメントを生成したため、新しい投稿を開始する価値があるように思われました。 結局のところ、問題は、C ++でのスマートポインタのさまざまな実装とは何か、そしてそれらをどのように比較するかです。単純な長所と短所、または例外と、他の方法では機能するはずだと思うかもしれないことの落とし穴 私はいくつかの実装を投稿したか、少なくとも以下の回答として使用することを検討し、100%正確ではない可能性があるそれらの違いと類似点について理解しているので、必要に応じて事実を確認または修正してください。 目標は、いくつかの新しいオブジェクトとライブラリについて学ぶか、すでに広く使用されている既存の実装の私の使用法と理解を修正して、他の人に適切なリファレンスを提供することです。

13
O(n)時間とO(1)空間での重複の検索
入力:0からn-1までの要素を含むn個の要素の配列が与えられ、これらの数値のいずれかが何度も現れる。 目標:O(n)でこれらの繰り返し数を検索し、一定のメモリ空間のみを使用する。 たとえば、nを7、配列を{1、2、3、1、3、0、6}とすると、答えは1と3になります。同様の質問をここで確認しましたが、回答にはいくつかのデータ構造HashSetなどが使用されています。 同じための効率的なアルゴリズムはありますか?
121 c++  c  algorithm 

23
C / C ++で人々が行う不当な仮定を実証するための教育ツールには何が含まれていますか?
初心者(および中級)プログラマーがC、C ++およびそれらのプラットフォームでの不当な前提を認識して挑戦するのに役立つ、SOのための小さな教育ツールを準備したいと思います。 例: 「整数は回り込む」 「誰もがASCIIを持っている」 「関数ポインタをvoid *に格納できます」 小さなテストプログラムをさまざまなプラットフォームで実行できると考えました。これは、SOでの経験から、多くの未経験/半経験主流の開発者が作成した「もっともらしい」仮定を実行し、さまざまなマシンでそれらが壊れる方法を記録しています。 これの目標は、何かをするのが「安全」であることを証明することではありません(実行することは不可能であり、テストが壊れた場合にのみ何でも証明します)代わりに、最も理解していない個人に最も目立たない表現を示す未定義または実装定義の動作がある場合は、別のマシンで中断します。。 これを達成するために私はあなたに尋ねたいと思います: このアイデアをどのように改善できますか? どのテストが適切で、どのように見えるべきですか? 手に入れて結果を投稿できるプラットフォームでテストを実行して、プラットフォームのデータベースを作成します。どのように違い、なぜこの違いが許容されるのでしょうか。 テストおもちゃの現在のバージョンは次のとおりです。 #include <stdio.h> #include <limits.h> #include <stdlib.h> #include <stddef.h> int count=0; int total=0; void expect(const char *info, const char *expr) { printf("..%s\n but '%s' is false.\n",info,expr); fflush(stdout); count++; } #define EXPECT(INFO,EXPR) if (total++,!(EXPR)) expect(INFO,#EXPR) /* stack check..How …

2
#include <string>がスタックオーバーフローエラーを防ぐのはなぜですか?
これは私のサンプルコードです: #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; class MyClass { string figName; public: MyClass(const string&amp; s) { figName = s; } const string&amp; getName() const { return figName; } }; ostream&amp; operator&lt;&lt;(ostream&amp; ausgabe, const MyClass&amp; f) { ausgabe &lt;&lt; f.getName(); return ausgabe; } int main() { MyClass f1("Hello"); cout …

11
リンクされたリストがノード内にノードを格納する代わりにポインタを使用する理由
私はJavaで広範囲に及ぶ前にリンクリストを扱ってきましたが、C ++は非常に初めてです。私はプロジェクトで与えられたこのノードクラスをうまく使っていました class Node { public: Node(int data); int m_data; Node *m_next; }; しかし、私はあまりよく答えられなかった一つの質問をしました。なぜ使用する必要があるのですか Node *m_next; リストの次のノードを指すのではなく Node m_next; ポインタバージョンを使用する方がよいことを理解しています。事実について議論するつもりはありませんが、なぜそれが優れているのかはわかりません。私は、ポインターがメモリ割り当てにどのように優れているかについて明確な答えが得られなかったので、ここにいる誰かがそれをよりよく理解するのに役立つかどうか疑問に思っていました。


18
C ++でコードスニペットの実行時間を計算する方法
C ++コードスニペットの実行時間を秒単位で計算する必要があります。WindowsまたはUnixマシンで動作している必要があります。 これを行うには、次のコードを使用します。(前にインポート) clock_t startTime = clock(); // some code here // to compute its execution duration in runtime cout &lt;&lt; double( clock() - startTime ) / (double)CLOCKS_PER_SEC&lt;&lt; " seconds." &lt;&lt; endl; ただし、a = a + 1などの小さな入力または短いステートメントの場合、「0秒」という結果が得られます。0.0000001秒くらいかなと思います。 System.nanoTime()この場合、Javaではうまく機能することを覚えています。しかしclock()、C ++の関数から同じ正確な機能を取得することはできません。 解決策はありますか?
121 c++  benchmarking 

4
fpermissiveフラグは何をしますか?
私は-fpermissiveフラグがg ++コンパイラで何をしているのだろうと思っていますか?私は得ています: エラー:一時[-fpermissive]のアドレスを取得しています -fpermissiveコンパイラにフラグを与えることで解決でき ます。 編集:私は一時的なアドレスエラー部分を引き起こしているものを見つけました!今、その部分を修正します。

2
C ++は1文字から文字列に変換しますか?[閉まっている]
この質問が今後の訪問者を助けることはほとんどありません。それは、地理的に狭い地域、特定の瞬間、またはインターネットの世界中のオーディエンスに一般的に適用できない非常に狭い状況にのみ関連しています。この質問をより広く適用できるようにするには、ヘルプセンターにアクセスしてください。 7年前休業。 私は唯一の1をキャストする必要がありますcharしstring。反対の方法はのようにかなり単純ですstr[0]。 以下は私にとってはうまくいきませんでした: char c = 34; string(1,c); //this doesn't work, the string is always empty. string s(c); //also doesn't work. boost::lexical_cast&lt;string&gt;((int)c); //also doesn't work.
121 c++  casting 

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