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

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

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のアイデアが最初から始まっているため、アイデアを思いついた人があなたの答えを読む可能性が非常に高くなります。


19
どのような場合にmallocやnewを使用しますか?
私はC ++でデータを割り当てたり解放したりする方法が複数あることを理解しています。呼び出すmallocときは呼び出す必要がfreeあり、new演算子を使用するときはペアにする必要がdeleteあり、2つを組み合わせるのは誤りです(たとえば、free()作成されたものの呼び出し)newオペレータ)が、私は私が使用する必要があるときにクリアしていないよmalloc/ free私が使用する必要があるときにnew/ delete私の本当の世界のプログラムで。 C ++のエキスパートの場合は、この点に関して従う経験則や慣例を教えてください。

21
C ++でPI定数を使用する方法
一部のC ++プログラムでPI定数および三角関数を使用したいと思います。で三角関数を取得しinclude <math.h>ます。ただし、このヘッダーファイルにはPIの定義がないようです。 手動で定義せずにPIを取得するにはどうすればよいですか?
476 c++  trigonometry 

17
std :: vectorの反復:符号なしvs符号付きインデックス変数
C ++でベクトルを反復処理する正しい方法は何ですか? 次の2つのコードフラグメントを検討してください。これは正常に機能します。 for (unsigned i=0; i < polygon.size(); i++) { sum += polygon[i]; } そしてこれ: for (int i=0; i < polygon.size(); i++) { sum += polygon[i]; } を生成しwarning: comparison between signed and unsigned integer expressionsます。 私はC ++の世界で新しいので、unsigned変数は少し恐ろしいように見え、unsigned正しく使用しないと変数が危険である可能性があることを知っています。これは正しいですか?
470 c++  stl  unsigned  signed 

30
このプログラムが3つのC ++コンパイラによって誤って拒否されるのはなぜですか?
ロックされています。質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答や相互作用を受け入れていません。 私が書いたC ++プログラムをコンパイルするのが難しいです。 このプログラムは非常にシンプルであり、私の知る限りでは、C ++標準で規定されているすべてのルールに準拠しています。確かに、ISO / IEC 14882:2003の全体を2回読みました。 プログラムは次のとおりです。 このプログラムをVisual C ++ 2010でコンパイルしようとしたときに受け取った出力は次のとおりです。 c:\dev>cl /nologo helloworld.png cl : Command line warning D9024 : unrecognized source file type 'helloworld.png', object file assumed helloworld.png : fatal error LNK1107: invalid or corrupt file: cannot read at 0x5172 がっかりして、私はg ++ 4.5.2を試しましたが、同様に役に立ちませんでした: c:\dev>g++ helloworld.png helloworld.png: …

20
プログラムでマシン上のコアの数を見つける
プラットフォームに依存しない方法で、C / C ++からマシンが持っているコアの数を決定する方法はありますか?そのようなものが存在しない場合、それをプラットフォームごと(Windows / * nix / Mac)に決定するのはどうですか?
464 c++  c 

10
コマンドを実行し、POSIXを使用してC ++内でコマンドの出力を取得するにはどうすればよいですか?
C ++プログラム内から実行したときにコマンドの出力を取得する方法を探しています。system()関数の使用方法を確認しましたが、これはコマンドを実行するだけです。これが私が探しているものの例です: std::string result = system("./some_command"); 任意のコマンドを実行して、その出力を取得する必要があります。boost.orgを見てきましたが、必要なものを提供するものは何も見つかりませんでした。

12
いつreinterpret_castを使用するのですか?
reinterpret_castvs の適用性に少し混乱していstatic_castます。私が読んだことから、一般的なルールは、コンパイル時に型を解釈できるときに静的キャストを使用することstaticです。これは、C ++コンパイラが暗黙的なキャストのために内部的に使用するキャストでもあります。 reinterpret_castsは次の2つのシナリオに適用されます。 整数型からポインタ型へ、またはその逆への変換 あるポインタ型を別のポインタ型に変換します。私が得る一般的な考えは、これは移植性がなく、避けるべきであるということです。 私が少し混乱しているのは必要な使用法の1つです。CからC ++を呼び出しています。CコードはC ++オブジェクトを保持する必要があるため、基本的にはを保持していvoid*ます。とvoid *クラス型の間の変換にはどのキャストを使用する必要がありますか? 私は両方の使い方を見ているstatic_castとreinterpret_cast?私が読んでいるものからstatic、キャストがコンパイル時に発生する可能性があるので、それはより良いように見えますか?reinterpret_castあるポインタ型から別のポインタ型に変換するために使用すると書かれていますが?
459 c++  casting 

6
Typedef関数ポインター?
StackаэтотвопросестьответынаStack Overflowнарусском:typeакработаетtypedefвэтомкоде? DLLを動的にロードする方法を学習していますが、理解できないのはこの行です typedef void (*FunctionFunc)(); 少し質問があります。誰かがそれに答えることができれば私は感謝しています。 なぜtypedef使用されるのですか? 構文は奇妙に見えます。後にvoid関数名や何かがあるべきではありませんか?匿名関数のように見えます。 関数のメモリアドレスを格納するために関数ポインタが作成されていますか? だから私は今混乱しています。わかりやすく説明してもらえますか?
459 c++  c  pointers  typedef 

8
boolのprintf形式指定子とは何ですか?
ANSI C99以降、_Boolまたはboolを使用していstdbool.hます。しかしprintf、ブールのフォーマット指定子もありますか? その疑似コードのようなものを意味します: bool x = true; printf("%B\n", x); 印刷されます: true
458 c++  c  boolean  printf 




18
標準のC ++ / C ++ 11 / Cを使用してファイルが存在するかどうかを確認する最も速い方法は?
標準のC ++ 11、C ++、またはCにファイルが存在するかどうかを確認する最速の方法を見つけたいと思います。何千ものファイルがあり、それらに何かを行う前に、すべてが存在するかどうかを確認する必要があります。/* SOMETHING */次の関数の代わりに何を書くことができますか? inline bool exist(const std::string& name) { /* SOMETHING */ }
453 c++  c  file  stream 

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