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

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

4
C ++文字列の文字の並べ替え
文字列がある場合、文字を並べ替えるための組み込み関数がありますか、それとも自分で作成する必要がありますか? 例えば: string word = "dabc"; 次のように変更したいと思います。 string sortedWord = "abcd"; たぶんcharを使用する方が良いオプションですか?C ++でこれを行うにはどうすればよいですか?
86 c++  string  sorting 

4
T *をレジスタに渡すことができるのに、unique_ptr <T>はできないのはなぜですか?
私はCppCon 2019でチャンドラー・カルースの講演を見ています: ゼロコストの抽象化はありません その中で、彼は、std::unique_ptr&lt;int&gt;over を使用することによって生じるオーバーヘッドの大きさに驚いた様子の例を示していint*ます。そのセグメントは、およそ17:25の時点で始まります。 彼のサンプルのスニペットのペア(godbolt.org)のコンパイル結果を確認できます。実際、コンパイラーがunique_ptr値を渡そうとはしていないようです。ただのアドレス-レジスタ内、ストレートメモリ内のみ。 Carruth氏が27:00頃に指摘する点の1つは、C ++ ABIが値渡しパラメーター(すべてではないが、一部ではない可能性があります。レジスター内ではなく。 私の質問: これは実際には一部のプラットフォームでのABI要件ですか?(どれですか?)または、特定のシナリオでの悲観化に過ぎないのでしょうか? なぜABIはそのようなのですか?つまり、構造体/クラスのフィールドがレジスター内、または単一のレジスター内に収まる場合、なぜそのレジスター内で渡すことができないのでしょうか? C ++標準委員会は、この点について近年、またはこれまでに議論しましたか? PS-この質問をコードなしで残さないように: 単純なポインタ: void bar(int* ptr) noexcept; void baz(int* ptr) noexcept; void foo(int* ptr) noexcept { if (*ptr &gt; 42) { bar(ptr); *ptr = 42; } baz(ptr); } 一意のポインタ: using std::unique_ptr; void bar(int* ptr) noexcept; void baz(unique_ptr&lt;int&gt; …

6
C ++での揮発性と可変性
揮発性と可変性の違いについて質問があります。私は、2つの両方がそれが変更される可能性があることを意味することに気づきました。ほかに何か?それらは同じものですか?違いは何ですか?それらはどこに適用できますか?なぜ2つのアイデアが提案されているのですか?それらを別の方法で使用する方法は? どうもありがとう。
85 c++  volatile  mutable 

3
CとC ++のほぼ同一のコード間の実行時間の大きな違い(x9)
私はwww.spoj.comからこの演習を解決しようとしていました:FCTRL-階乗 あなたは本当にそれを読む必要はありません、あなたが興味を持っているならそれを読んでください:) 最初に私はそれをC ++で実装しました(これが私の解決策です): #include &lt;iostream&gt; using namespace std; int main() { unsigned int num_of_inputs; unsigned int fact_num; unsigned int num_of_trailing_zeros; std::ios_base::sync_with_stdio(false); // turn off synchronization with the C library’s stdio buffers (from https://stackoverflow.com/a/22225421/5218277) cin &gt;&gt; num_of_inputs; while (num_of_inputs--) { cin &gt;&gt; fact_num; num_of_trailing_zeros = 0; for (unsigned int fives …
85 c++  c  performance  gcc  iostream 

3
A()= A()-なぜコンパイルするのですか?
class A {}; int main() { A() = A(); return 0; } このコードがコンパイルされるのはなぜですか?代入演算子の左側に左辺値を配置する必要があるというエラーはありませんか?A()は左辺値ですか?g ++ 4.7バージョン
85 c++ 

9
最も効率的なスレッドセーフなC ++ロガーは何ですか?[閉まっている]
閉まっている。この質問は、StackOverflowのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、StackOverflowのトピックになります。 6年前に閉鎖されました。 この質問を改善する 私はパフォーマンスが重要なマルチスレッドアプリケーションに取り組んでいます。rlog、Ace、Boostのログを調べました。rlogを選択したのは、それが最速だったからです(ロギングが無効になっていると、オーバーヘッドが最小になります)。 私が抱えている問題は、リリースモードでもファイル名や行番号などが表示されることです。その情報を遮断する方法を教えていただければ、私の問題は解決するかもしれません。いずれにせよ、私の状況でC ++で最も効率的なロガーは何ですか?
85 c++  logging 

1
C / C ++プロジェクトでのMavenの使用
私はMavenビルドをアマチュアのクラスターの周りに置いています。記述が不十分で率直に言って-プリミティブC / C ++コード(いくつかのC、いくつかのC ++を意味します)。問題は、現在流通しているものがたくさんあり、簡単に交換できないことです。それを構築するには多くの部族の知識が必要であり(さまざまなパーツをコンパイル/構築する方法を見つけるためにキューブからキューブに移動する必要があります)、リリースは完全に悪夢です。(いいえ-私はそれを書き直すつもりはありません、plzは尋ねません)私の質問は-私はmaven-native-plugin多数の短いmakefileを置き換えるために使用するべきexec-maven-pluginですか、それとも単にこれらを実行するために使用するべきですか?私はこれまで、後者が.NETを実行することでかなり良い経験をしましたが、nativeプラグインに投資するべきか、それともとどまるべきかわかりませんかexec?「Mavenizing」C / C ++の経験があれば、アドバイスをいただければ幸いです。

12
マップ値をSTLのベクトルにコピーします
現在、EffectiveSTLを使用しています。項目5は、通常、対応する単一要素よりも範囲メンバー関数を使用する方が望ましいことを示しています。私は現在、マップ内のすべての値をベクトルにコピーしたいと思っています(つまり、キーは必要ありません)。 これを行う最もクリーンな方法は何ですか?
85 c++  stl  containers 

19
C ++でのURLのエンコード/デコード[クローズ]
閉まっている。この質問は、StackOverflowのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、StackOverflowのトピックになります。 1年前に閉鎖。 この質問を改善する 誰かがこれを行う良いC ++コードを知っていますか?

10
C ++ 03で「auto」キーワードを使用する理由はありますか?
この質問は、C ++ 11が承認される前、およびautoキーワードの意味が大幅に変更される前の2009年に最初に投稿されたことに注意してください。提供された回答は関連しています、C ++ 03の意味(auto指定されたストレージクラスである)にのみ、C ++ 11の意味(auto自動型推論)にしません。C ++ 11をいつ使用するかについてのアドバイスを探している場合auto、この質問はその質問とは関係ありません。 staticブロックスコープの外で宣言された変数は暗黙的にグローバルであるため、長い間、Cでキーワードを使用する理由はないと思っていました。次に、変数をstaticブロックスコープ内として宣言すると永続的な期間が与えられ、ブロックスコープ外(プログラムスコープ内)で宣言するとファイルスコープ(そのコンパイルユニットでのみアクセス可能)になることがわかりました。 したがって、これにより、私が(おそらく)まだ完全には理解していないキーワードが1つだけauto残ります。それはキーワードです。「ローカル変数」以外の意味はありますか?あなたがそれを使いたいと思うところならどこでもあなたのために暗黙のうちに行われていないことは何ですか?auto変数はプログラムスコープでどのように動作しますか?static autoファイルスコープの変数はどうですか?このキーワードには、完全を期すために存在する以外の目的がありますか?
85 c++  keyword  c++03 

4
翻訳ユニットの一部に対してのみGCC警告を選択的に無効にしますか?
このMSVCプリプロセッサコードに相当する最も近いGCCは何ですか? #pragma warning( push ) // Save the current warning state. #pragma warning( disable : 4723 ) // C4723: potential divide by 0 // Code which would generate warning 4723. #pragma warning( pop ) // Restore warnings to previous state. 一般的に含まれているヘッダーに、特定の警告を生成したくないコードがあります。ただし、これらのヘッダーを含むファイルは、引き続きその警告を生成する必要があります(プロジェクトでその警告が有効になっている場合)。

1
Qt LGPLライセンスを使用して、アプリケーションを制限なしで販売できますか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新することがありますので、話題のスタックオーバーフローのため。 8年前に閉鎖されました。 この質問を改善する クロスプラットフォームプロジェクトを始めたいです。私は自分の研究をしました、そして今私はQtが正しい取引であるとほぼ確信しています。ただし、ここには大きな障害があります。ライセンスです。 私は自分のプロジェクトを売りたいと思っています。また、自分の仕事に関連する情報源を提供したり、ライセンスを購入したりしたくありません。Qtが商用ソリューションとオープンソースソリューションの両方を提供していることを確認しました。Qtライセンスに関して相反することわざが多すぎて、私は非常に混乱しました。LGPLバージョンのQtを使用している場合でも、コードを送信する必要があると言う人もいます。これは本当ですか? 誰かがQtライセンスについて簡単に説明して、アプリケーションを制限なしで販売できるかどうか教えてもらえますか?クロスプラットフォーム開発のためのQtに相当する他の制限のないものを誰かに教えてもらえますか?
85 c++  qt  licensing 

10
ポインタを整数に変換する
既存のコードを64ビットマシンに適合させようとしています。主な問題は、1つの関数で、前のコーダーが関数自体で適切な型に変換されるvoid *引数を使用することです。短い例: void function(MESSAGE_ID id, void* param) { if(id == FOO) { int real_param = (int)param; // ... } } もちろん、64ビットマシンでは、次のエラーが発生します。 error: cast from 'void*' to 'int' loses precision これを修正して、32ビットマシンでも可能な限りクリーンに動作するようにします。何か案が ?
85 c++  gcc  casting  64-bit  32-bit 


7
ベクトルを関数に渡す方法は?
関数の引数としてベクトルを送信しようとしていますが、それを機能させる方法がわかりません。さまざまな方法を試しましたが、すべて異なるエラーメッセージが表示されます。動作しないのはこの部分だけなので、コードの一部だけを含めます。(ベクトル「ランダム」は、0から200までのランダムでソートされた値で埋められます) コードを更新しました: #include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;algorithm&gt; #include &lt;vector&gt; using namespace std; int binarySearch(int first, int last, int search4, vector&lt;int&gt;&amp; random); int main() { vector&lt;int&gt; random(100); int search4, found; int first = 0; int last = 99; found = binarySearch(first, last, search4, random); system("pause"); return(0); } int binarySearch(int first, …
85 c++  function  vector 

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