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

共同編集されたコミュニティ編集のC ++ FAQを提供します


4
ループ条件内のiostream :: eof(つまり、while(!stream.eof()) `)が間違っていると見なされるのはなぜですか?
この回答iostream::eofで、ループ条件での使用は「ほぼ間違いなく」間違っているというコメントを見つけました。私は一般的に次のようなものを使用しますwhile(cin>>n)-これは暗黙的にEOFをチェックすると思います。 eofのチェックが明示的にwhile (!cin.eof())間違っているのはなぜですか? scanf("...",...)!=EOFCで使用する場合(問題なく使用することが多い)とどのように違いますか?
595 c++  iostream  c++-faq 

12
C ++:「std :: endl」vs「\ n」
多くのC ++の本には、このようなサンプルコードが含まれています... std::cout << "Test line" << std::endl; ...だから私もいつもそうしている。しかし、代わりに次のような作業中の開発者からの多くのコードを見てきました。 std::cout << "Test line\n"; どちらかを優先する技術的な理由はありますか、それともコーディングスタイルの問題ですか?

6
イテレーターの無効化ルール
C ++コンテナーのイテレーター無効化ルールとは何ですか? できれば要約リスト形式で。 (注:これはStack OverflowのC ++ FAQへのエントリになることを目的としています。このフォームでFAQを提供するという考えを批評したい場合は、これをすべて開始したメタへの投稿がそのための場所になります。回答その質問はC ++チャットルームで監視され、FAQのアイデアはそもそも最初から始まっているため、アイデアを思いついた人があなたの答えを読む可能性は非常に高いです。
543 c++  c++11  iterator  c++17  c++-faq 

5
C ++で配列を使用するにはどうすればよいですか?
C ++はCから継承した配列であり、事実上どこでも使用されています。C ++は、使いやすく、エラーが発生しにくい抽象化を提供します(std::vector<T>C ++ 98 std::array<T, n>以降およびC ++ 11以降)。そのため、配列の必要性は、Cの場合ほど頻繁には発生しません。 Cで記述されたコードを記述したり、ライブラリとやり取りしたりするには、配列がどのように機能するかをしっかりと把握する必要があります。 このFAQは5つの部分に分かれています。 型レベルの配列と要素へのアクセス 配列の作成と初期化 割り当てとパラメーターの受け渡し 多次元配列およびポインターの配列 配列を使用する際の一般的な落とし穴 このFAQに重要な何かが欠けていると思われる場合は、回答を書き、ここに追加部分としてリンクしてください。 次のテキストでは、「配列」は「C配列」を意味し、クラステンプレートではありませんstd::array。C宣言子構文の基本的な知識があることを前提としています。の手動での使用newとdelete以下に示すように、例外に直面すると非常に危険ですが、それは別のFAQのトピックです。 (注:これは、Stack OverflowのC ++ FAQへのエントリになることを目的としています。このフォームでFAQを提供するという考えを批評したい場合は、これをすべて開始したメタへの投稿がそのための場所になります。回答その質問は、C ++チャットルームで監視されます。ここでは、FAQのアイデアが最初から始まっているため、アイデアを思いついた人があなたの答えを読む可能性が非常に高くなります。

5
「STL」と「C ++標準ライブラリ」の違いは何ですか?
誰かがもたらしたこの記事をクレームはというのが私の注意に(私は言い換えだ) STL項は全体のC ++標準ライブラリの代わりに、SGIのSTLから採取された部分を参照するために悪用されています。 (...)STL(SGIで設計された)をまだほとんど使用していないという事実にもかかわらず、「STL」を指します。 C ++標準ライブラリの一部はSTLの一部に基づいており、多くの人々(複数の作者や悪名高いエラーに悩まされているcplusplus.comを含む)が「STL」と呼んでいるのはこれらの部分です。ただし、これは不正確です。実際、C ++標準では「STL」については言及されておらず、2つのコンテンツには違いがあります。 (...)「STL」は、SGI STLに基づくstdlibのビットを参照するために使用されることはほとんどありません。人々はそれが全体の標準ライブラリだと思っています。CVに配置されます。そしてそれは誤解を招くものです。 私はC ++の歴史についてほとんど何も知らないので、記事の正確さを判断できません。STLという用語は使用しないでください。それともこれは孤立した意見ですか?

30
C ++の構造体とクラスの違いは何ですか?
この質問は、C#/。Netのコンテキストですでに尋ねられました。 次に、C ++での構造体とクラスの違いを学びたいと思います。OO設計で技術的な違いとどちらか一方を選択する理由について説明してください。 明らかな違いから始めましょう: public:またはを指定しない場合private:、構造体のメンバーはデフォルトでパブリックになります。クラスのメンバーはデフォルトでプライベートです。 C ++仕様のあいまいなコーナーには他にも違いがあると思います。
439 c++  oop  class  struct  c++-faq 

6
フォワードを使用する利点
完全な転送でstd::forwardは、名前付き右辺値参照t1および名前なし右辺値参照への変換に使用されt2ます。それを行う目的は何ですか?&を左辺値のinnerままにすると、呼び出された関数にどのような影響がありますか?t1t2 template <typename T1, typename T2> void outer(T1&& t1, T2&& t2) { inner(std::forward<T1>(t1), std::forward<T2>(t2)); }

6
C ++ 11右辺値と移動の意味論の混乱(returnステートメント)
私は右辺値参照を理解し、C ++ 11のセマンティクスを移動しようとしています。 これらの例の違いは何ですか?それらのうちどれがベクターコピーを行わないでしょうか? 最初の例 std::vector<int> return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return tmp; } std::vector<int> &&rval_ref = return_vector(); 2番目の例 std::vector<int>&& return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return std::move(tmp); } std::vector<int> &&rval_ref = return_vector(); 3番目の例 std::vector<int> return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return std::move(tmp); } std::vector<int> &&rval_ref = return_vector();


6
コンパイル/リンクプロセスはどのように機能しますか?
コンパイルとリンクのプロセスはどのように機能しますか? (注:これはStack OverflowのC ++ FAQへのエントリになることを目的としています。このフォームでFAQを提供するという考えを批評したい場合は、これをすべて開始したメタへの投稿がそのための場所になります。回答その質問はC ++チャットルームで監視され、FAQのアイデアが最初から始まっているため、アイデアを思いついた人があなたの答えを読む可能性が非常に高くなります。

12
現在のCまたはC ++標準のドキュメントはどこにありますか?
この質問の答えはコミュニティの努力です。この投稿を改善するには、既存の回答を編集してください。現在、新しい回答や相互作用を受け入れていません。 StackаэтотвопросестьответынаStack Overflowнарусском:ГдевзятьстандартC ++? 多くの質問に対する答えは「標準」にあるようです。しかし、それはどこにありますか?できればオンライン。 グーグルは、プログラミングフォーラムでの議論の洪水に溺れているため、特にC標準では、場合によっては無駄に感じることがあります。 これを始めるために、これらは私が今探しているものですので、どこに良いオンラインリソースがありますか? C89 C99 C11 C ++ 98 C ++ 03 C ++ 11 C ++ 14 C ++ 17
394 c++  c  standards  c++-faq 

4
コピーの省略と戻り値の最適化とは何ですか?
コピーエリクションとは何ですか?(名前付き)戻り値の最適化とは何ですか?彼らは何を意味しますか? どのような状況で発生する可能性がありますか?制限とは何ですか? この質問を参照された場合は、おそらく導入部を探しているでしょう。 技術概要については、標準リファレンスを参照してください。 一般的なケースについては、こちらをご覧ください。

11
クラス間の循環依存によるビルドエラーを解決する
異なるヘッダーファイル内のC ++クラス間の循環依存関係につながるいくつかの悪い設計決定(他の人が行った:)が原因で、C ++プロジェクトで複数のコンパイル/リンカーエラーに直面している状況によく気づきます(発生する可能性もあります)同じファイル内)。しかし、幸いにも(?)この問題は頻繁には起こらないため、次回この問題が再び発生するときのために、この問題の解決策を思い出すことはできません。 したがって、将来のリコールを容易にするために、代表的な問題とその解決策を掲載します。より良い解決策はもちろん大歓迎です。 A.h class B; class A { int _val; B *_b; public: A(int val) :_val(val) { } void SetB(B *b) { _b = b; _b->Print(); // COMPILER ERROR: C2027: use of undefined type 'B' } void Print() { cout<<"Type:A val="<<_val<<endl; } }; B.h #include "A.h" class B …

6
C ++ではどのXMLパーサーを使用すればよいですか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか? Stack Overflowのトピックとなるように質問を更新します。 2年前休業。 解析が必要なXMLドキュメントがある、またはXMLドキュメントを作成してテキスト(ファイルまたはメモリ)に書き込む必要があります。C ++標準ライブラリにはこのためのライブラリがないため、何を使用すればよいですか? 注:これは、C ++-FAQスタイルの決定的な質問であることを意図しています。そう、それは他のものの複製です。他の質問はもう少し具体的なものを求める傾向があったため、私はそれらの他の質問を単に適切に使用しませんでした。この質問はより一般的です。
344 c++  xml-parsing  c++-faq 

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