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

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


3
「* thisの右辺値参照」とは何ですか?
clangのC ++ 11ステータスページで「* thisの右辺値参照」と呼ばれる提案に出くわしました。 私は右辺値参照についてかなり読んで理解しましたが、私はこれについて知っているとは思いません。また、この用語を使用しても、ウェブ上で多くのリソースを見つけることができませんでした。 ページに提案書へのリンクがあります:N2439(移動のセマンティクスを* thisに拡張しています)が、そこから多くの例を取得していません。 この機能については何ですか?

16
STLのベクターとリスト
効果的なSTLで、 vectorは、デフォルトで使用されるシーケンスのタイプです。 それはどういう意味ですか?効率を無視vectorしても何でもできるようです。 誰かが私にvector実現可能なオプションではないlistが使用する必要があるシナリオを提供できますか?
238 c++  list  vector  stl 


15
Windows 7でプログラムをフランス語でコンパイルできないのはなぜですか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 6年前休業。 ロックされています。この質問とトピックへの回答はロックされています。質問はトピックから外れていますが、歴史的に重要です。現在、新しい回答や相互作用を受け入れていません。 私はWindows 7フランス語を実行していて、この本当に基本的なプログラムをコンパイルしようとしていますが、Visual Studioは頑固で、準拠することを拒否しています。また、Coliruで GCC 4.7とClangトランクの両方でコンパイルしてみたところ、多かれ少なかれ同じエラーが発生しました(出力はコードの下にあります)。 。 何が悪いのですか?そして、どうすれば修正できますか? コード #inclure <iostream> ent principal(ent argn, ent** argm) // entier, nombre d'arguments, valeur des arguments { std::cendehors << "Bonjour le monde!\n"; renvoi SORTIE_SUCCÈS; } 出力 principal.cpp:1:6: erreur: prétraitement de la directive invalide #inclure #inclure <iostream> ^ principal.cpp:6:8: erreur: …

5
ostreamの<<演算子を適切にオーバーロードする方法は?
行列演算のためにC ++で小さな行列ライブラリを書いています。しかし、私のコンパイラは文句を言いますが、以前はそうではありませんでした。このコードは6か月間棚に置いたままで、その間にコンピュータをdebian etchからlenny(g ++(Debian 4.3.2-1.1)4.3.2)にアップグレードしましたが、同じg ++のUbuntuシステムでも同じ問題があります。 これが私のマトリックスクラスの関連部分です: namespace Math { class Matrix { public: [...] friend std::ostream&amp; operator&lt;&lt; (std::ostream&amp; stream, const Matrix&amp; matrix); } } そして「実装」: using namespace Math; std::ostream&amp; Matrix::operator &lt;&lt;(std::ostream&amp; stream, const Matrix&amp; matrix) { [...] } これはコンパイラーによって与えられたエラーです: matrix.cpp:459:エラー: 'std :: ostream&Math :: Matrix :: operator &lt;&lt;(std :: …

21
未使用の変数に関する警告を無音にする方法を教えてください。
クロスプラットフォームアプリケーションがあり、一部の関数では、関数に渡されるすべての値が使用されていません。したがって、未使用の変数があるというGCCからの警告が表示されます。 警告をコーディングする最良の方法は何ですか? 関数の周りの#ifdef? #ifdef _MSC_VER void ProcessOps::sendToExternalApp(QString sAppName, QString sImagePath, qreal qrLeft, qreal qrTop, qreal qrWidth, qreal qrHeight) #else void ProcessOps::sendToExternalApp(QString sAppName, QString sImagePath, qreal /*qrLeft*/, qreal /*qrTop*/, qreal /*qrWidth*/, qreal /*qrHeight*/) #endif { これは醜いですが、コンパイラーが好む方法のようです。 または、関数の最後で変数にゼロを割り当てますか?(コンパイラの警告を消すためにプログラムフロー内の何かを変更しているため、これは嫌いです)。 正しい方法はありますか?
237 c++  gcc  warnings  gcc-warning 

2
「スパン」とは何ですか。いつ使用する必要がありますか。
最近span&lt;T&gt;、コードでを使用するよう提案するか、サイトでを使用するいくつかの回答を見ましたspan。ある種のコンテナだと思われます。しかし、私はC ++ 17標準ライブラリでそのようなものを見つけることができません。 では、この不可解なspan&lt;T&gt;とは何か、そしてそれが非標準である場合、なぜ(またはいつ)使用するのが良いのでしょうか?

11
C ++の「翻訳単位」とは
私は、マイヤーズによって書かれた「Effective C ++」を読んでいて、「翻訳単位」という用語に出くわしました。 誰かが私に説明をお願いします: 1)それは正確には何ですか 2)C ++でプログラミングする場合、いつ使用することを検討すべきですか 3)C ++にのみ関連している場合、または他のプログラミング言語で使用できる場合 用語を知らなくても既に使っているかもしれません……
236 c++ 

26
インタビューの質問:1つの文字列が他の文字列の回転であるかどうかを確認します[終了]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 9年前休業。 ロックされています。質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答や相互作用を受け入れていません。 私の友人は本日、ソフトウェア開発者の立場についてのインタビューで次の質問をされました: 2つの文字列を考えるs1とs2、どのようにかどうかをチェックしますs1で、回転のバージョンs2? 例: 場合はs1 = "stackoverflow"、その後、次はその回転バージョンの一部です: "tackoverflows" "ackoverflowst" "overflowstack" ここで、as "stackoverflwo"はローテーションバージョンではありません。 彼が出した答えは: のs2サブストリングである最長の接頭辞を取得して見つけますs1。これにより、回転のポイントが得られます。そのポイントを見つけたら、そのポイントで中断s2してとを取得s2aしs2b、次にconcatenate(s2a,s2b) == s1 それは私と私の友人にとって良い解決策のように見えます。しかし、インタビュアーはそうではないと考えました。彼はもっと簡単な解決策を求めました。これをどのように行うのか教えてくださいJava/C/C++。 前もって感謝します。
235 java  c++  c 

1
C ++ 11を有効にするとstd :: vectorパフォーマンスが低下する
C ++ 11を有効にすると、小さなC ++スニペットで興味深いパフォーマンスの低下が見つかりました。 #include &lt;vector&gt; struct Item { int a; int b; }; int main() { const std::size_t num_items = 10000000; std::vector&lt;Item&gt; container; container.reserve(num_items); for (std::size_t i = 0; i &lt; num_items; ++i) { container.push_back(Item()); } return 0; } g ++(GCC)4.8.2 20131219(プレリリース)とC ++ 03を使用すると、次のようになります。 milian:/tmp$ g++ -O3 main.cpp &amp;&amp; …
235 c++  performance  gcc  c++11  vector 

8
UbuntuにOpenSSLライブラリをインストールするにはどうすればよいですか?
OpenSSL 1.0.0を使用するUbuntu 10.04 LTSでいくつかのコードをビルドしようとしています。makeを実行すると、「-lssl」オプションを指定してg ++が呼び出されます。ソースが含まれます: #include &lt;openssl/bio.h&gt; #include &lt;openssl/buffer.h&gt; #include &lt;openssl/des.h&gt; #include &lt;openssl/evp.h&gt; #include &lt;openssl/pem.h&gt; #include &lt;openssl/rsa.h&gt; 私が走った: $ sudo apt-get install openssl Reading package lists... Done Building dependency tree Reading state information... Done openssl is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and 3 …


27
do-while(0)を回避するより良い方法は何ですか?C ++でハッキングしますか?
コードフローが次のような場合: if(check()) { ... ... if(check()) { ... ... if(check()) { ... ... } } } 上記の厄介なコードフローを回避するために、この回避策を一般的に見ました。 do { if(!check()) break; ... ... if(!check()) break; ... ... if(!check()) break; ... ... } while(0); この回避策/ハックを回避してより高いレベル(業界レベル)のコードになるようにするためのより良い方法は何ですか? すぐに使える提案は大歓迎です!
233 c++  do-while 

5
最適化レベル-O3はg ++で危険ですか?
私はさまざまな情報源から聞いたことがあります(ほとんどが私の同僚からのものです)。 -O3 g ++のはどういうわけか「危険」であり、必要であることが証明されない限り一般に回避すべきであるとています。 これは本当ですか、もしそうなら、なぜですか?私だけに固執する必要があり-O2ますか?

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