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

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

13
C ++で配列のすべての要素を1つのデフォルト値に初期化しますか?
C ++ノート:配列の初期化には、配列の初期化に関する優れたリストがあります。私は持っています int array[100] = {-1}; -1でいっぱいであると期待しますが、そうではありません。最初の値だけが残り、残りはランダムな値と混合された0です。 コード int array[100] = {0}; うまく機能し、各要素を0に設定します。 ここで何が欠けていますか?値がゼロでない場合、初期化できませんか? そして2:デフォルトの初期化(上記のとおり)は、配列全体をループして値を割り当てる通常のループよりも高速ですか、それとも同じことをしますか?

8
Tの完全な定義を知るにはstd :: unique_ptr <T>が必要ですか?
ヘッダーに次のようなコードがあります。 #include &lt;memory&gt; class Thing; class MyClass { std::unique_ptr&lt; Thing &gt; my_thing; }; Thingタイプ定義を含まないcppにこのヘッダーを含めると、VS2010-SP1でコンパイルできません。 1&gt; C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include \ memory(2067):error C2027:use of undefined type 'Thing' 置き換えstd::unique_ptrによってstd::shared_ptr、それがコンパイルされます。 したがって、std::unique_ptr完全な定義が必要なのは現在のVS2010 の実装であり、完全に実装に依存していると思います。 またはそれは?標準の要件に、std::unique_ptrの実装が前方宣言のみで機能することを不可能にする何かがありますか?へのポインタのみを保持する必要があるため、奇妙に感じThingますね。

13
カスタムオブジェクトのベクターの並べ替え
カスタム(つまり、ユーザー定義)オブジェクトを含むベクターを並べ替える方法を教えてください。 おそらく、カスタムオブジェクトのフィールドの1つ(並べ替えのキーとして)を操作する述語(関数または関数オブジェクト)と共に標準のSTLアルゴリズムの並べ替えを使用する必要があります。 私は正しい軌道に乗っていますか?
248 c++  stl  sorting 

28
グローバル変数は悪いですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 3年前休業。 この質問を改善する C / C ++では、グローバル変数は教授が考えるほど悪いのですか?
247 c++  c  global-variables 

17
std :: mapからすべてのキー(または値)を取得してベクターに入れる方法は?
これは私が出てくる可能な方法の1つです。 struct RetrieveKey { template &lt;typename T&gt; typename T::first_type operator()(T keyValuePair) const { return keyValuePair.first; } }; map&lt;int, int&gt; m; vector&lt;int&gt; keys; // Retrieve all keys transform(m.begin(), m.end(), back_inserter(keys), RetrieveKey()); // Dump all keys copy(keys.begin(), keys.end(), ostream_iterator&lt;int&gt;(cout, "\n")); もちろん、別のファンクターRetrieveValuesを定義して、マップからすべての値を取得することもできます。 これを簡単に達成する他の方法はありますか?(なぜstd :: mapにそうするためのメンバー関数が含まれていないのか、いつも疑問に思っています。)
246 c++  dictionary  stl  stdmap 

12
to_stringはstdのメンバーではない、とg ++は言う(mingw)
私は単語が意味のためにランダムに私にフラッシュされるだろう小さな語彙記憶プログラムを作っています。Bjarne Stroustroupが教えてくれたように、標準のC ++ライブラリを使用したいのですが、一見奇妙な問題がすぐに発生しました。 ファイルに格納できるようにlong整数をに変更したいstd::string。私はto_string()同じものを採用しています。問題は、g ++(--compileversionフラグで言及されているバージョン4.7.0)でコンパイルすると、次のようになります。 PS C:\Users\Anurag\SkyDrive\College\Programs&gt; g++ -std=c++0x ttd.cpp ttd.cpp: In function 'int main()': ttd.cpp:11:2: error: 'to_string' is not a member of 'std' このエラーを発生させる私のプログラムは次のとおりです。 #include &lt;string&gt; int main() { std::to_string(0); return 0; } しかし、msdnライブラリーがそれが存在することを明確に示しており、Stack Overflow(g ++バージョン4.5の場合)に関する以前の質問で、-std=c++0xフラグを使用してオンにできることを示しているため、そうなる可能性はありません。何が悪いのですか?
245 c++  c++11  g++  mingw  tostring 

28
C ++はC#よりどのくらい高速ですか?
それとも逆になりましたか? 私が聞いたところによると、C#がC ++よりも高速であることが証明されているいくつかの領域がありますが、私はそれを自分でテストする勇気がありませんでした。 これらの違いを詳細に説明したり、この情報の適切な場所を私に示したりできると思いました。



9
コピーの初期化と直接の初期化には違いがありますか?
私がこの機能を持っているとしましょう: void my_test() { A a1 = A_factory_func(); A a2(A_factory_func()); double b1 = 0.5; double b2(0.5); A c1; A c2 = A(); A c3(A()); } 各グループで、これらのステートメントは同じですか?または、初期化の一部に追加の(おそらく最適化可能な)コピーがありますか? 私は人々が両方のことを言うのを見てきました。証拠としてテキストを引用してください。他のケースも追加してください。

15
すべての例外をキャッチするC ++
Javaに相当するC ++はありますか try { ... } catch (Throwable t) { ... } ネイティブのWindows関数を呼び出すJava / jniコードをデバッグしようとしていますが、仮想マシンがクラッシュし続けます。ネイティブコードは単体テストでは問題なく表示され、jniから呼び出された場合にのみクラッシュするようです。一般的な例外キャッチメカニズムは非常に便利です。
244 c++  exception 

4
ドット、矢印、またはダブルコロンを使用してC ++のクラスのメンバーを参照するのはいつですか?
:C ++に(JavaやC#のような)他のC由来の言語から来て、それは非常にC ++クラスのメンバを参照する3つの方法を持っていることを混同最初にありa::b、a.bおよびa-&gt;b。これらの演算子のどれをいつ使用しますか? (注:これは、Stack OverflowのC ++ FAQへのエントリになることを意図しています。このフォームでFAQを提供するという考えを批評したい場合は、これをすべて開始したメタへの投稿がそのための場所になります。回答その質問はC ++チャットルームで監視され、FAQのアイデアはそもそも始まったので、アイデアを思いついた人があなたの答えを読む可能性が非常に高くなります。
243 c++  c++-faq 

5
CMakeでインクルードディレクトリを適切に追加する方法
1年ほど前に、CMakeのヘッダーの依存関係について質問しました。 最近問題が発生したのは、CMakeがこれらのヘッダーファイルをプロジェクトの外部にあると見なしていたことが問題であることに気付きました。少なくとも、Code :: Blocksプロジェクトを生成する場合、ヘッダーファイルはプロジェクト内に表示されません(ソースファイルは表示されます)。したがって、CMakeはこれらのヘッダーをプロジェクトの外部にあると見なし、依存関係でそれらを追跡しないように思えます。 CMakeチュートリアルでのクイック検索で、include_directories私が望んでいるようには見えないものを指摘しただけです... 特定のディレクトリに含まれるヘッダーが含まれ、それらのヘッダーが生成されたMakefileによって追跡される必要があることをCMakeに通知する適切な方法は何ですか?
243 c++  ubuntu  cmake 

11
最も広く使用されているC ++ベクトル/行列数学/線形代数ライブラリ、およびそれらのコストと利益のトレードオフは何ですか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 2年前休業。 この質問を改善する 多くのプロジェクトは、マトリックス計算を行う必要性にゆっくりと遭遇し、最初にいくつかのベクトルクラスを構築し、機能が徐々に追加されて、中途半端なカスタム線形代数ライブラリの構築に巻き込まれ、それに依存するようになるのではないかと思われます。 いくつかの接線方向に関連するライブラリ(OpenCV、OpenSceneGraphなど)への依存を構築していない間は、それを回避したいと思います。 そこに一般的に使用される行列数学/線形代数ライブラリは何ですか、なぜ別のものを使用することにしたのですか?何らかの理由で使用しないようにアドバイスされるものはありますか?私はこれを幾何学的/時間のコンテキスト*(2,3,4 Dim)*で具体的に使用していますが、将来的にはより高次元のデータを使用する可能性があります。 API、速度、メモリ使用量、幅/完全性、狭さ/特異性、拡張性、成熟度/安定性のいずれかに関する違いを探しています。 更新 私は非常に満足しているEigen3を使用することになりました。

14
クラスデータメンバー“ :: *”へのポインター
私はうまくコンパイルするこの奇妙なコードスニペットに出くわしました: class Car { public: int speed; }; int main() { int Car::*pSpeed = &amp;Car::speed; return 0; } なぜ C ++には、クラスの非静的データメンバーへのこのポインターがあるのですか?実際のコードでこの奇妙なポインターの使用は何ですか?
242 c++  class  pointers  c++-faq 

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