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

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

8
C ++ cout 16進値?
私はやってみたいです: int a = 255; cout << a; 出力にFFと表示されますが、どうすればよいですか?
144 c++  hex  cout 



9
Visual Studioデバッガーで動的に割り当てられた配列を表示する方法
静的に割り当てられた配列がある場合、Visual Studioデバッガーはすべての配列要素を簡単に表示できます。ただし、配列が動的に割り当てられ、ポインターによってポイントされている場合、+をクリックして展開すると、配列の最初の要素のみが表示されます。デバッガーに伝える簡単な方法はありますか?このデータをFoo型とサイズXの配列として表示しますか?

3
サイトcoderbyteの「gets(stdin)」で何が起こっているのですか?
Coderbyteはオンラインコーディングチャレンジサイトです(2分前に見つけました)。 最初のC ++チャレンジには、変更が必要なC ++スケルトンがあります。 #include <iostream> #include <string> using namespace std; int FirstFactorial(int num) { // Code goes here return num; } int main() { // Keep this function call here cout << FirstFactorial(gets(stdin)); return 0; } C ++に慣れていない場合、最初に目につくのは*です。 int FirstFactorial(int num); cout << FirstFactorial(gets(stdin)); つまり、getsC ++ 11以降は非推奨であり、C ++ 14以降は削除されているコード自体が悪いコード呼び出しです。 …


4
クラス内でテンプレート関数を作成する方法は?(C ++)
テンプレート関数を作成できることはわかっています。 template<typename T> void DoSomeThing(T x){} そして、テンプレートクラスを作ることが可能です: template<typename T> class Object { public: int x; }; しかし、テンプレート内にないクラスを作成し、そのクラスの関数をテンプレートにすることは可能ですか?すなわち: //I have no idea if this is right, this is just how I think it would look class Object { public: template<class T> void DoX(){} }; または、クラスはテンプレートの一部ではないが、機能はある程度ですか?
144 c++  templates  function  class 

7
C ++ 14の自動戻り型の控除はいつ使用する必要がありますか?
GCC 4.8.0がリリースされると、C ++ 14の一部である自動戻り型の推論をサポートするコンパイラーが提供されます。で-std=c++1y、これを行うことができます: auto foo() { //deduced to be int return 5; } 私の質問は次のとおりです。いつこの機能を使用すればよいですか?いつそれが必要で、いつコードがよりクリーンになりますか? シナリオ1 私が考えることができる最初のシナリオは、可能な限りです。このように書くことができるすべての関数はそうあるべきです。これの問題は、コードが読みやすくなるとは限らないことです。 シナリオ2 次のシナリオは、より複雑な戻り値の型を回避することです。非常に軽い例として: template<typename T, typename U> auto add(T t, U u) { //almost deduced as decltype(t + u): decltype(auto) would return t + u; } 私はそれが本当に問題になるとは思いませんが、戻り値の型を明示的にパラメーターに依存させる方が明確な場合もあります。 シナリオ3 次に、冗長性を防ぐには: auto foo() { std::vector<std::map<std::pair<int, double>, …

7
std :: cin input with space?
#include <string> std::string input; std::cin >> input; ユーザーが「Hello World」と入力したいと考えています。しかしcin、2つの単語の間のスペースで失敗します。cin全体をどのように取り込むことができHello Worldますか? 私は実際に構造体でこれを行っており、cin.getline動作していないようです。これが私のコードです: struct cd { std::string CDTitle[50]; std::string Artist[50]; int number_of_songs[50]; }; std::cin.getline(library.number_of_songs[libNumber], 250); これはエラーになります。何か案は?
144 c++  string  space 

7
C ++ autoキーワード。なぜそれは魔法なのですか?
私がC ++を学ぶために使用したすべての資料から、auto常に何の目的も果たさない奇妙なストレージ期間指定子でした。しかし、つい最近、それ自体を型名として使用するコードに遭遇しました。好奇心から私はそれを試しました、そしてそれは私がそれに偶然割り当てるもののタイプを想定しています! 突然、STLイテレータや、テンプレートを使用するものはすべて、10倍簡単に記述できます。Pythonのような「楽しい」言語を使用しているように感じます。 このキーワードは私の人生のどこにありましたか?それはビジュアルスタジオ専用であるか、ポータブルでないと言って、私の夢を打ち砕いてくれませんか?
144 c++  types  c++11  auto 

14
C ++でautoを使用して変数を宣言することの欠点はありますか?
これはauto、C ++ 11に追加されるかなり重要な機能であり、多くの新しい言語に従っているようです。Pythonのような言語と同様に、明示的な変数宣言はありません(Python標準を使用して可能かどうかはわかりません)。 auto変数を明示的に宣言する代わりにを使用して宣言することに欠点はありますか?


5
Antlrの利点(対して、lex / yacc / bison)[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 この質問を改善する 過去には、さまざまなプロジェクト、通常はトランスレータ(EDAアプリにストリーミングされるEDIFのサブセットなど)にlexとyacc(通常はbison)を使用しました。さらに、何十年も前のlex / yacc文法に基づくコードをサポートする必要がありました。私は専門家ではありませんが、ツールの使い方を知っています。 私は過去にさまざまなフォーラムでAntlrについて肯定的なコメントを見てきましたが、何が欠けているのか知りたいです。両方を使用したことがある場合は、Antlrの優れている点と進んだ点を教えてください。私の現在の制約は、C ++ショップで作業することであり、出荷する製品にはJavaが含まれていないため、結果のパーサーはそのルールに従う必要があります。
143 c++  antlr  yacc  bison 

7
文字列を丸めることができないのはなぜですか?
なぜ私はこれがcout string好きではないのですか? string text ; text = WordList[i].substr(0,20) ; cout << "String is : " << text << endl ; これを行うと、次のエラーが発生します。 エラー2エラーC2679:バイナリ '<<':タイプ 'std :: string'の右側のオペランドをとる演算子が見つかりません(または許容できる変換がありません)c:\ users \ mollasadra \ documents \ visual studio 2008 \ projects \ barnamec \ barnamec \ barnamec.cpp 67 barnamec ** これでも機能しないのは驚くべきことです。 string text ; …
143 c++  string  cout 


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