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

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

11
C ++で文字列を文字配列に変換する方法は?
配列に変換stringしたいのですcharがchar*。文字列をchar*(mallocコードを使用して、またはコードに投稿する方法で)に変換する方法を知っていますが、それは私が望んでいることではありません。単に配列に変換stringしたいだけですchar[size]。出来ますか? #include <iostream> #include <string> #include <stdio.h> using namespace std; int main() { // char to string char tab[4]; tab[0] = 'c'; tab[1] = 'a'; tab[2] = 't'; tab[3] = '\0'; string tmp(tab); cout << tmp << "\n"; // string to char* - but thats not what I want char …

7
バイナリファイルの読み取りと書き込み
バイナリファイルをバッファーに読み込むコードを記述してから、そのバッファーを別のファイルに書き込みます。次のコードがありますが、バッファにはファイルの最初の行のASCII文字がいくつかしか格納されません。 int length; char * buffer; ifstream is; is.open ("C:\\Final.gif", ios::binary ); // get length of file: is.seekg (0, ios::end); length = is.tellg(); is.seekg (0, ios::beg); // allocate memory: buffer = new char [length]; // read data as a block: is.read (buffer,length); is.close(); FILE *pFile; pFile = fopen ("C:\\myfile.gif", "w"); …
103 c++  file  binary  buffer 

16
LinuxでC ++がミリ秒の時間を取得— clock()が正しく機能していないようです
Windowsではclock()時間をミリ秒単位で返しますが、私が作業しているこのLinuxボックスでは、最も近い1000に四捨五入するため、精度は「秒」レベルのみであり、ミリ秒レベルではありません。 QTimeクラスを使用してQtで解決策を見つけ、オブジェクトをインスタンス化start()して呼び出しelapsed()、ミリ秒数を取得するために呼び出しました。 そもそもQtで作業しているので、ちょっとラッキーですが、サードパーティのライブラリに依存しないソリューションが欲しいのですが、 これを行うための標準的な方法はありませんか? 更新 Boostを推奨しないでください。 BoostとQtがそれを実行できる場合、それは魔法ではありません。彼らが使用している標準があるはずです。
102 c++  timer  clock 

2
voidでの&&の意味* p = && abc;
コードに出くわしましたvoid *p = &&abc;。&&ここの意味は何ですか?右辺値参照については知っていますが&&、このコンテキストでの使用は異なります。は何を&&示していvoid *p = &&abc;ますか?
102 c++  c  gcc  operators 

7
プログラムをゆっくり実行する
LinuxのOSパラメータを変更してC ++プログラムをより遅く実行する方法はありますか?このようにして、特定のプログラムが実際に遅いマシンで実行された場合にどうなるかをシミュレーションしたいと思います。 言い換えれば、より高速のマシンは、その特定のプログラムに対してより低速のマシンとして動作する必要があります。
102 c++  c  linux  unix  ubuntu 

9
string :: compareがintを返すのはなぜですか?
またはのような小さい型の代わりにをstring::compare返すのはなぜですか?私の理解では、このメソッドは-1、0、または1のみを返します。intshortchar 2番目の部分では、タイプの2つのオブジェクトを比較する比較メソッドを設計していて、Foo-1、0、または1のみを返したい場合、を使用するshortか、char一般的には良いアイデアでしょうか。 編集:私は修正されました。string::compare-1、0、または1を返しません。実際には> 0、<0または0の値を返します。 おおよその答えのようintですが、戻り値は「rvalues」であり、それらの「rvalues」はint型(4バイト)よりも小さくてもメリットがないため、よりも小さい型を返す理由はありません。また、多くの人は、ほとんどのシステムのレジスターはおそらくintいずれにせよサイズが大きくなるだろうと指摘しました。これらのレジスターは、1、2、または4バイトの値を与えるかどうかにかかわらず満たされるため、小さい値。 編集2:実際には、アライメント、マスキングなどの小さなデータ型を使用すると、余分な処理オーバーヘッドが発生する可能性があるようです。一般的なコンセンサスは、配列の場合。 今日は何かを学びました、ありがとうみんな!
102 c++ 

12
Visual Studioは新しいC / C ++標準をサポートしていますか?
私はC99とC ++ 11と、いつか使うのが良いかもしれない言語標準に追加されているこれらすべての完全に甘いものについて読み続けています。ただし、現在Visual StudioでC ++を作成することは困難です。 標準の新しいものはビジュアルスタジオに追加されますか、それともMicrosoftは新しいC#バリアントを追加することに関心がありますか? 編集:受け入れられた回答に加えて、Visual C ++チームのブログを見つけました。 http://blogs.msdn.com/vcblog/ そして具体的には、その中のこの投稿: https://web.archive.org/web/20190109064523/https://blogs.msdn.microsoft.com/vcblog/2008/02/22/tr1-slide-decks/ 非常に便利。ありがとう!

2
標準C ++ライブラリに含まれる例外クラス
標準C ++ライブラリに含まれている例外クラスとは何ですか?それらは何に使用する必要がありますか?私はいくつかの新しいC ++ 11例外があることを知っていますが、それらが何であるか、またはどこにあるのかわかりません。
102 c++  exception  c++11  stl 

7
C ++では、関数からベクトルを返すことはまだ悪い習慣ですか?
短いバージョン:多くのプログラミング言語では、ベクトルや配列などの大きなオブジェクトを返すのが一般的です。クラスにmoveコンストラクターがある場合、このスタイルはC ++ 0xで受け入れられるのですか、それともC ++プログラマーは奇妙/醜い/退屈であると考えていますか? 長いバージョン: C ++ 0xでは、これはまだ悪い形式と見なされていますか? std::vector<std::string> BuildLargeVector(); ... std::vector<std::string> v = BuildLargeVector(); 従来のバージョンは次のようになります。 void BuildLargeVector(std::vector<std::string>& result); ... std::vector<std::string> v; BuildLargeVector(v); 新しいバージョンでBuildLargeVectorは、から返される値は右辺値であるためstd::vector、(N)RVOが発生しないと仮定すると、vはの移動コンストラクタを使用して構築されます。 C ++ 0xの前でさえ、(N)RVOのために最初の形式はしばしば「効率的」でした。ただし、(N)RVOはコンパイラーの裁量に任されています。これで右辺値参照ができたので、ディープコピーが行われないことが保証されます。 編集:質問は本当に最適化についてではありません。示されている両方の形式は、実際のプログラムでほぼ同一のパフォーマンスを持っています。一方、最初の形式では、パフォーマンスが大幅に低下する可能性がありました。その結果、最初の形式は、長い間C ++プログラミングの主要なコードのにおいでした。もういいんじゃないの?

12
コンストラクタからテンプレートパラメータを推測しないのはなぜですか?
今日の私の質問は非常に単純です:コンパイラーがクラスコンストラクターからテンプレートパラメーターを推測できないのはなぜですか?たとえば、次のコードが有効でなかった理由: template<typename obj> class Variable { obj data; public: Variable(obj d) { data = d; } }; int main() { int num = 2; Variable var(num); //would be equivalent to Variable<int> var(num), return 0; //but actually a compile error } 私が言うように、これは有効ではないことを理解しているので、私の質問はなぜそうではないのですか?これを許可すると、主要な構文上の穴が作成されますか?この機能が不要なインスタンスはありますか(タイプを推測すると問題が発生します)?関数のテンプレート推論を許可する背後にあるロジックを理解しようとしていますが、適切に構築されたクラスではありません。

4
CMakeを使用するにはどうすればよいですか?
私はopencvをコンパイルするためにCMakeを使用しようとしています。 チュートリアルを読んでいますが、CMakeListsファイルとは何か、CMakeのGUIにどのように接続されているのか理解できません。 また、メイクファイルとは何か理解できませんでした。CMakeListsと同じですか? そして、最終的に私がvisual-studioで開いたのはどのファイルですか?
102 c++  visual-studio  cmake 

4
例外が発生するまでGDBでアプリケーションを実行する
私はマルチスレッドアプリケーションで作業しており、GDBを使用してそれをデバッグしたいと考えています。 問題は、私のスレッドの1つが次のメッセージで消え続けることです。 pure virtual method called terminate called without an active exception Abort 私はそのメッセージの原因を知っていますが、私のスレッドのどこで発生するのかわかりません。バックトレースは本当に役に立ちます。 GDBでアプリを実行すると、スレッドが一時停止または再開されるたびに一時停止します。例外のあるスレッドの1つが停止するまでアプリを通常どおり実行し続けます。その時点ですべてが停止し、バックトレースを取得できます。

2
C ++ 11での乱数生成:生成方法、その仕組み [閉まっている]
ここで何が尋ねられているのかを知るのは難しい。この質問は、あいまいで、あいまいで、不完全で、過度に広い、または修辞的であり、現在の形では合理的に回答することができません。再開できるようにこの質問を明確にするヘルプについては、ヘルプセンターに アクセスしてください。 8年前に閉鎖。 私は最近C ++ 11で乱数を生成する新しい方法に出くわしましたが、それについて読んだ論文を要約することができませんでした(「エンジン」、「分布」のような数学用語、「生成されたすべての整数が等しく可能性がある」)。 だから誰でも説明できますか 彼らは何ですか? 彼らはどういう意味ですか? 生成する方法? 彼らはどのように機能しますか? 等 乱数生成に関する1つのFAQですべてを呼び出すことができます。
102 c++  c++11  random 

8
列挙型の名前空間-ベストプラクティス
多くの場合、いくつかの列挙型を一緒に必要とします。時々、名前の衝突があります。これに対する2つの解決策が思い浮かびます:名前空間を使用するか、「より大きな」列挙型要素名を使用します。それでも、名前空間ソリューションには、2つの可能な実装があります。ネストされた列挙型を持つダミークラス、または完全な名前空間です。 3つのアプローチすべての長所と短所を探しています。 例: // oft seen hand-crafted name clash solution enum eColors { cRed, cColorBlue, cGreen, cYellow, cColorsEnd }; enum eFeelings { cAngry, cFeelingBlue, cHappy, cFeelingsEnd }; void setPenColor( const eColors c ) { switch (c) { default: assert(false); break; case cRed: //... break; case cColorBlue: //... //... } } …
102 c++  enums  scope  nested 

7
C int配列をゼロにリセット:最速の方法?
T myarray[100]with T = int、unsigned int、long long intまたはunsigned long long int があると仮定すると、すべてのコンテンツをゼロにリセットする最も速い方法は何ですか(初期化のためだけでなく、プログラムでコンテンツを数回リセットするため) ?多分memsetで? のような動的配列についても同じ質問ですT *myarray = new T[100]。
102 c++  c  arrays  memset 

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