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

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


3
GoogleTestで特定のテストケースを実行する方法
プロジェクトの関数/メソッドを記述しようとしていますが、実行するすべてのテストケースをユーザーに尋ねます。それは以下のように見えます...、 Test_Cases_1 |_TestNo1 |_TestNo2....so on Test_Cases_2 |_TestNo1 |_TestNo2....so on .... ....so on Test_Cases_N |_TestNo1 |_TestNo2....so on それで、今の課題は、プロジェクトの実行中に、実行したいすべてのテストケースを確認する必要があるということです。とを選択Test_Cases_1した場合Test_Cases_N。次に、これら2つのテストケースを実行し、その他すべてをから除外する必要がありTest_Cases_2 to ....ます。結果ウィンドウでも、Test_Cases_1との結果を確認したいと思いTest_Cases_Nます。 したがって、GoogleTestが表示される場合は、というメソッドがありtest_case_to_run_count()ます。しかし、すべてtest casesがTest_F()メソッドで登録されています。だから、私はたくさんの分析をしましたが、それでも解決策は見つかりませんでした。私を助けてください。

8
スタックや再帰を使用せずにモリスの順序木探索を説明する
誰かが、スタックや再帰を使用せずに、次のモリス順序木探索アルゴリズムを理解するのを手伝ってくれませんか?私はそれがどのように機能するかを理解しようとしていましたが、それはちょうど私をエスケープしました。 1. Initialize current as root 2. While current is not NULL If current does not have left child a. Print current’s data b. Go to the right, i.e., current = current->right Else a. In current's left subtree, make current the right child of the rightmost node b. Go to …

12
C ++でのタプルの使用が一般的ではないのはなぜですか?
C ++でBoost Tuple LibraryまたはTR1の標準ライブラリのいずれかでタプルを使用しているように思われないのはなぜですか?多くのC ++コードを読みましたが、タプルの使用をめったに見ませんが、多くの場合、タプルが多くの問題(通常は関数から複数の値を返す)を解決する場所がたくさんあります。 タプルを使用すると、次のようなあらゆる種類の優れた操作を実行できます。 tie(a,b) = make_tuple(b,a); //swap a and b それは確かにこれよりも優れています: temp=a; a=b; b=temp; もちろん、いつでもこれを行うことができます: swap(a,b); しかし、3つの値をローテーションする場合はどうでしょうか。あなたはタプルでこれを行うことができます: tie(a,b,c) = make_tuple(b,c,a); タプルを使用すると、関数から複数の変数を返すのがはるかに簡単になります。これは、値をスワップするよりもはるかに一般的なケースです。参照を使用して値を返すことは、確かにあまりエレガントではありません。 タプルに私が考えていない大きな欠点はありますか?そうでない場合、なぜそれらがめったに使用されないのですか?彼らは遅いですか?それとも人々が彼らに慣れていないだけですか?タプルを使用するのは良い考えですか?
124 c++  tuples 


3
1.0はstd :: generate_canonicalからの有効な出力ですか?
私はいつも、乱数は0と1の間にあり、なし1であると考えていました。つまり、乱数は半開区間[0,1)からの数値です。これはcppreference.comのドキュメントでstd::generate_canonical確認できます。 ただし、次のプログラムを実行すると、 #include <iostream> #include <limits> #include <random> int main() { std::mt19937 rng; std::seed_seq sequence{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; rng.seed(sequence); rng.discard(12 * 629143 + 6); float random = std::generate_canonical<float, std::numeric_limits<float>::digits>(rng); if (random == 1.0f) { std::cout << "Bug!\n"; } return 0; } それは私に次の出力を与えます: Bug! つまり1、MC統合で問題を引き起こす完璧なを生成します。それは有効な動作ですか、それとも私の側にエラーがありますか?これにより、G …
124 c++  c++11  random 

17
Qt 5.1.1:プラットフォームプラグイン「windows」が見つからないため、アプリケーションを起動できませんでした
編集: 一部の人々は私の質問を重複としてマークし始めました。私がこれを尋ねたとき、多くの同様の質問が存在したことを忘れないでください(たとえば、以下のリストを参照してください)。しかし、これらの回答のどれも私の問題を解決しませんでした。長い検索の結果、見つからないlibを指しているすべてのユーザーによって無視されていたコメントが見つかりました。現在、数か月後、コメントは回答に変更されました。しかし、私がmsyselfによってこの質問に答えたとき、私はソリューションを直接提供することによって他の人々を助けるつもりでした。これは忘れてはいけません。これまでのところ、私の答えは多くの人々を助けました。したがって、私の質問は間違いなく重複ではありません。 ちなみに、上部にあるリンク内で受け入れられた回答は問題を解決しません! はい、検索を使用しました: プラットフォームプラグイン「windows」の読み込みに失敗しました。利用可能なプラットフォームは次のとおりです:エラー Visual Studio qwindows.dllエラーからのQt C ++アプリケーションのデプロイ プラットフォームプラグイン "windows"の読み込みに失敗しました使用可能なプラットフォームは次のとおりです:windows、minimal しかし、私の場合、問題はまだ解決しません。Visual Studio 2012でQt 5.1.1を使用しており、Windows 7でQt Creator 2.8.1を使用してアプリケーションを開発しました。アプリケーションは「リリース」モードでコンパイルされ、Qt Creatorで直接起動すると実行できます。 ただし、「リリース」フォルダから開始すると、次のメッセージが表示されます。 このアプリケーションは、Qtプラットフォームプラグイン「windows」を検出またはロードできなかったため、起動できませんでした。使用可能なプラットフォームプラグインは、最小、オフスクリーン、Windowsです。 フォルダ構造は次のようになります。 release + gui.exe + icudt51.dll + icuin51.dll + icuuc51.dll + libGLESv2.dll + Qt5Core.dll + Qt5Gui.dll + Qt5Widgets.dll + platforms プラットフォームは、qwindows.dllなど、Qt \ Qt5.1.1 \ 5.1.1 \ msvc2012 \ …

8
main()からEXIT_SUCCESSまたは0を返す必要がありますか?
簡単な質問ですが、私は相反する答えを見続けています。C++プログラムのメインルーチンが戻るの0か、それともEXIT_SUCCESS? #include <cstdlib> int main(){return EXIT_SUCCESS;} または int main(){return 0;} それらはまったく同じものですか?でEXIT_SUCCESSのみ使用する必要がありexit()ますか? 私は考えたEXIT_SUCCESS他のソフトウェアは、障害としてゼロを考えるすることもできますので、より良い選択肢になるだろうが、私はまた、あなたが戻る場合と聞き0、コンパイラはとにかく異なる値に変化させることができます。
124 c++  c  return-value  main 

14
C ++での二重否定
かなり巨大なコードベースのプロジェクトにたどり着きました。 私は主にC ++を扱っており、彼らが作成するコードの多くはブールロジックに二重否定を使用しています。 if (!!variable && (!!api.lookup("some-string"))) { do_some_stuff(); } 私はこれらの人がインテリジェントなプログラマであることを知っています、彼らがこれを偶然にしていないのは明らかです。 私はベテランのC ++エキスパートではありません。なぜ彼らがこれを行っているのかという私の唯一の推測は、評価されている値が実際のブール表現であることを絶対的に肯定したいということです。したがって、彼らはそれを否定し、それを再び否定して、実際のブール値に戻します。 これは正しいですか、それとも何か不足していますか?
124 c++  boolean 


6
ラムダが自分自身を返す:これは合法ですか?
このかなり役に立たないプログラムを考えてみましょう: #include <iostream> int main(int argc, char* argv[]) { int a = 5; auto it = [&](auto self) { return [&](auto b) { std::cout << (a + b) << std::endl; return self(self); }; }; it(it)(4)(6)(42)(77)(999); } 基本的に、自分自身を返すラムダを作成しようとしています。 MSVCはプログラムをコンパイルし、実行します gccはプログラムをコンパイルし、segfaultします clangは次のメッセージでプログラムを拒否します。 error: function 'operator()<(lambda at lam.cpp:6:13)>' with deduced return type cannot …

13
ブール値をフリップする最も簡単な方法は?
私はそれが既に何であるかに基づいてブールを反転したいだけです。それが真の場合-偽にします。それが偽の場合-それを真にします。 これが私のコードの抜粋です: switch(wParam) { case VK_F11: if (flipVal == true) { flipVal = false; } else { flipVal = true; } break; case VK_F12: if (otherVal == true) { otherValVal = false; } else { otherVal = true; } break; default: break; }
124 c++  c  boolean  boolean-logic 

3
インライン変数はどのように機能しますか?
2016年のOulu ISO C ++標準会議で、インライン変数と呼ばれる提案が標準委員会によってC ++ 17に投票されました。 簡単に言えば、インライン変数とは何ですか、どのように機能し、何に役立つのですか?インライン変数はどのように宣言、定義、使用する必要がありますか?
124 c++  c++17 


7
C ++、フリーストアとヒープ
動的な割り当てはnew/delete上の場所を取ると言われているフリー店舗、一方でmalloc/free操作が使用ヒープを。 実際に実際の違いがあるかどうか知りたいのですが。 コンパイラーは2つの用語を区別しますか?(無料ストアとヒープではなくnew/malloc)

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