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

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



18
C ++プログラマーが「新規」の使用を最小限に抑える必要があるのはなぜですか?
私がつまずいスタックオーバーフロー質問のstd ::リストを使用しているときのstd ::文字列を使用してメモリリーク<はstd :: string>に、そしてコメントの一つは、この言います: 使用を中止newそんなに。どこで新しいものを使ったのか、私にはわかりません。C ++では値によってオブジェクトを作成できます。これは、この言語を使用することの大きな利点の1つです。 すべてをヒープに割り当てる必要はありません。Javaプログラマーの ように考えるのをやめます。 それが何を意味するのかよくわかりません。 C ++でオブジェクトをできるだけ頻繁に値で作成する必要があるのはなぜですか。また、内部的にどのような違いがありますか? 答えを誤解しましたか?


11
Collat​​z予想を手書きのアセンブリよりも速くテストするためのC ++コード-なぜですか?
Project Euler Q14のこれら2つのソリューションは、アセンブリとC ++で作成しました。これらは、Collat​​z予想をテストするための同じ同一の力ずくのアプローチです。組み立てソリューションは、 nasm -felf64 p14.asm && gcc p14.o -o p14 C ++は g++ p14.cpp -o p14 アセンブリ、 p14.asm section .data fmt db "%d", 10, 0 global main extern printf section .text main: mov rcx, 1000000 xor rdi, rdi ; max i xor rsi, rsi ; i l1: dec …

30
std :: stringをトリムする最良の方法は何ですか?
私は現在、次のコードを使用std::stringsして、プログラム内のすべてを右トリミングしています。 std::string s; s.erase(s.find_last_not_of(" \n\r\t")+1); それは正常に動作しますが、失敗する可能性のあるいくつかのエンドケースはあるのでしょうか? もちろん、エレガントな選択肢と左トリムソリューションによる回答も歓迎します。
812 c++  trim  stdstring 


4
C ++ 11でのT &&(二重アンパサンド)の意味は?
私はC ++ 11の新機能のいくつかを調査してきましたが、気付いたのは、変数の宣言における2つのアンパサンドT&& varです。 まず、この獣は何と呼ばれていますか?Googleがこのような句読点を検索できるようにしてほしい。 正確にはどういう意味ですか? 一見、それは(Cスタイルのダブルポインターのような)二重参照のように見えますが、T** varその使用例を考えるのに苦労しています。

9
マクロで明らかに無意味なdo-whileおよびif-elseステートメントを使用するのはなぜですか?
多くのC / C ++マクロで、無意味なdo whileループのように見えるマクロに囲まれたマクロのコードが表示されます。以下に例を示します。 #define FOO(X) do { f(X); g(X); } while (0) #define FOO(X) if (1) { f(X); g(X); } else 私は何をしdo whileているのか分かりません。これなしでこれを書いてみませんか? #define FOO(X) f(X); g(X)
788 c++  c  c-preprocessor  c++-faq 

25
std :: stringを小文字に変換する方法は?
std::string小文字に変換したい。この機能は知っtolower()ていますが、以前はこの機能に問題std::stringがありました。いずれにしても、を使用して各文字を反復処理する必要があるため、これは理想的ではありません。 100%動作する代替手段はありますか?

7
push_backとemplace_back
私は少しの違いについて混乱しているpush_backとemplace_back。 void emplace_back(Type&& _Val); void push_back(const Type& _Val); void push_back(Type&& _Val); push_back右辺値参照を取得するオーバーロードがあるので、目的emplace_backがどうなるかよくわかりませんか?

2
正確に8192要素をループするとプログラムが遅くなるのはなぜですか?
これは問題のプログラムからの抜粋です。行列img[][]のサイズはSIZE×SIZEで、次のように初期化されます。 img[j][i] = 2 * j + i 次に、マトリックスを作成res[][]します。ここの各フィールドは、imgマトリックス内のその周囲の9つのフィールドの平均になります。簡単にするため、境界線は0のままにしておきます。 for(i=1;i<SIZE-1;i++) for(j=1;j<SIZE-1;j++) { res[j][i]=0; for(k=-1;k<2;k++) for(l=-1;l<2;l++) res[j][i] += img[j+l][i+k]; res[j][i] /= 9; } これでプログラムは終わりです。完全を期すために、これが以前のものです。後にコードはありません。ご覧のとおり、それは初期化です。 #define SIZE 8192 float img[SIZE][SIZE]; // input image float res[SIZE][SIZE]; //result of mean filter int i,j,k,l; for(i=0;i<SIZE;i++) for(j=0;j<SIZE;j++) img[j][i] = (2*j+i)%8196; 基本的に、このプログラムはSIZEが2048の倍数である場合、実行時間が長くなります。 SIZE = 8191: 3.44 secs …

12
std :: wstring VS std :: string
私は間の違いを理解することはできませんよstd::stringとをstd::wstring。私が知っているwstringサポートに、このようなUnicode文字としてワイド文字が。次の質問があります。 いつstd::wstringオーバーで使用すべきstd::stringですか? std::string特殊文字を含むASCII文字セット全体を保持できますか? されるstd::wstringすべての一般的なC ++コンパイラでサポートされていますか? まさに「ワイドキャラクター」とは?
741 c++  string  unicode  c++-faq  wstring 



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