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

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

7
静的クラスメンバーへの未定義の参照
次のコードがコンパイルされない理由を誰かが説明できますか?少なくともg ++ 4.2.4では。 さらに興味深いことに、MEMBERをintにキャストするとコンパイルされるのはなぜですか? #include <vector> class Foo { public: static const int MEMBER = 1; }; int main(){ vector<int> v; v.push_back( Foo::MEMBER ); // undefined reference to `Foo::MEMBER' v.push_back( (int) Foo::MEMBER ); // OK return 0; }
201 c++  g++ 

11
C ++プログラマが知っておくべき一般的な未定義の動作は何ですか?[閉まっている]
ここで何が質問されているのかを理解するのは困難です。この質問は、あいまいで、あいまいで、不完全で、過度に広い、または修辞的であり、現在の形では合理的に回答することができません。再開できるようにこの質問を明確にするヘルプについては、ヘルプセンターに アクセスしてください。 7年前休業。 ロックされています。質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答や相互作用を受け入れていません。 C ++プログラマが知っておくべき一般的な未定義の動作は何ですか? 次のように言います: a[i] = i++;

5
ifstreamを手動で閉じる必要がありますか?
close()を使用する場合、手動で呼び出す必要がありstd::ifstreamますか? たとえば、コードでは: std::string readContentsOfFile(std::string fileName) { std::ifstream file(fileName.c_str()); if (file.good()) { std::stringstream buffer; buffer << file.rdbuf(); file.close(); return buffer.str(); } throw std::runtime_exception("file not found"); } file.close()手動で呼び出す必要がありますか?ファイルを閉じるifstreamためにRAIIを使用すべきではありませんか?
201 c++  ifstream  raii 

13
std :: size_tを使用する場合
std::size_t代わりにforループなどを使用する必要があるのintでしょうか?例えば: #include <cstdint> int main() { for (std::size_t i = 0; i < 10; ++i) { // std::size_t OK here? Or should I use, say, unsigned int instead? } } 一般的に、いつ使用するstd::size_tかに関するベストプラクティスは何ですか?

5
C ++ STLベクトル:インデックスからイテレーターを取得しますか?
そのため、stlベクトルの要素にindex []でアクセスする一連のコードを記述しましたが、今度は、ベクトルのチャンクのみをコピーする必要があります。それはvector.insert(pos, first, last)私が欲しい関数のように見えます... intとして最初と最後しか持っていないことを除いて。これらの値のイテレータを取得できる良い方法はありますか?
200 c++  stl  vector  iterator 

12
過負荷の飛行機から太っている人々を捨てる。
飛行機があり、燃料が少ないとしましょう。飛行機が乗客の体重の3000ポンドを落とさない限り、次の空港に到着することはできません。最大の命を救うために、一番重い人を飛行機から降ろしたいと思います。 そして、そうそう、飛行機には何百万人もの人がいるので、リスト全体をソートする必要はなく、最も重い乗客を見つけるための最適なアルゴリズムが欲しいのです。 これは、C ++でコーディングしようとしているもののプロキシの問題です。乗客のマニフェストで「partial_sort」を重量で実行したいのですが、必要な要素の数がわかりません。独自の "partial_sort"アルゴリズム( "partial_sort_accumulate_until")を実装することもできますが、標準のSTLを使用してこれを行う簡単な方法があるかどうか疑問に思っています。
200 c++  algorithm  sorting  stl 

6
cplusplus.comの何が問題になっていますか?
これはおそらくこの質問に完全に適したフォーラムではないかもしれませんが、退去させられる危険を冒して、私に試してみましょう。 貴重なISO規格を含むC ++標準ライブラリのためのいくつかの言及があるMSDN、IBM、cppreference、およびCPLUSPLUSは。個人的には、C ++を作成するときに、迅速なランダムアクセス、短い読み込み時間、および使用例を備えたリファレンスが必要であり、cplusplus.comはかなり便利だと感じていました。ただし、私はそのWebサイトについて否定的な意見を頻繁に聞いているため、具体的に知りたいと思います。 cplusplus.comからのエラー、誤解、悪いアドバイスは何ですか?コーディングの決定にそれを使用するリスクは何ですか? この点を付け加えましょう:ここでSOに関する質問に標準の正確な引用で答えられるようにしたいので、すぐに使用できるリンクを投稿したいと思います。cplusplus.comは、この問題。
200 c++ 


21
アサート悪ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 Go言語の作成者は書きます: Goはアサーションを提供しません。それらは間違いなく便利ですが、私たちの経験では、プログラマーはそれらを松葉杖として使用して、適切なエラー処理やレポートについて考えることを避けてきました。適切なエラー処理とは、サーバーがクラッシュするのではなく、致命的ではないエラーの後も動作を継続することを意味します。適切なエラー報告とは、エラーが直接的かつ適切なものであることを意味し、プログラマーが大きなクラッシュトレースを解釈するのを防ぎます。正確なエラーは、エラーを見ているプログラマがコードに精通していない場合に特に重要です。 これについてどう思いますか?
199 c++  c  error-handling  go  assert 

3
thisポインタを通じてテンプレートの基本クラスメンバーにアクセスする必要があるのはなぜですか?
以下のクラスはテンプレートでなかった場合、私は単に持っている可能性がxでderivedクラス。ただし、以下のコードでは、を使用する必要がありますthis->x。どうして? template <typename T> class base { protected: int x; }; template <typename T> class derived : public base<T> { public: int f() { return this->x; } }; int main() { derived<int> d; d.f(); return 0; }


3
coutはstdのメンバーではありません
複数のファイルやヘッダーファイルなどを使用して練習しています。そのため、このプロジェクトでは2つの数値を取り、それらを加算しています。ものすごく単純。 これが私のファイルです: main.cpp #include <iostream> #include "add.h" int main() { int x = readNumber(); int y = readNumber(); writeAnswer(x + y); return(0); } io.cpp int readNumber() { int x; std::cout << "Number: "; std::cin >> x; return x; } void writeAnswer(int x) { std::cout << "Answer: "; std::cout << x; …
199 c++  io  std  member  cout 



7
再入可能関数とは正確には何ですか?
ほとんど の 時間は、再入の定義はから引用されウィキペディア: コンピュータプログラムまたはルーチンは、以前の呼び出しが完了する前に安全に再度呼び出すことができる(つまり、同時に安全に実行できる)場合、再入可能 と呼ばれます。再入可能であるためには、コンピュータプログラムまたはルーチン: 静的(またはグローバル)非定数データを保持してはなりません。 静的(またはグローバル)非定数データにアドレスを返してはなりません。 呼び出し元から提供されたデータのみを処理する必要があります。 シングルトンリソースへのロックに依存してはなりません。 独自のコードを変更してはなりません(独自のスレッドストレージで実行する場合を除く) 非再入可能コンピュータプログラムまたはルーチンを呼び出さないでください。 安全にどのように定義されていますか? プログラムを安全に並行して実行できる場合、それは常に再入可能であることを意味しますか? 再入可能機能についてコードをチェックする際に留意する必要がある、言及された6つのポイント間の一般的なスレッドは正確に何ですか? また、 すべての再帰関数は再入可能ですか? すべてのスレッドセーフ関数は再入可能ですか? すべての再帰的でスレッドセーフな関数は再入可能ですか? この質問を書いていると、1つのことが頭に浮かびます。再入可能性やスレッドセーフティなどの用語は絶対的なものですか。具体的な定義が固定されているのでしょうか。そうでない場合、この質問はあまり意味がありません。

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