Als «c++» getaggte Fragen

C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entwickelt und hat eine ähnliche Syntax, ist aber jetzt eine völlig andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. Verwenden Sie ein versionierungsspezifisches Tag für Fragen zu einer bestimmten Standardversion [C ++ 11], [C ++ 14], [C ++ 17] oder [C ++ 20] usw.

2
C ++ 11 Lambda-Implementierung und Speichermodell
Ich möchte einige Informationen darüber, wie man richtig über C ++ 11-Schließungen nachdenkt und std::function wie sie implementiert werden und wie mit Speicher umgegangen wird. Obwohl ich nicht an vorzeitige Optimierung glaube, habe ich die Angewohnheit, die Auswirkungen meiner Auswahl auf die Leistung beim Schreiben von neuem Code sorgfältig zu …
92 c++  memory  lambda  c++11 

21
Konvertieren Sie einen Vektor <int> in eine Zeichenfolge
Ich habe einen vector&lt;int&gt;Container mit ganzen Zahlen (z. B. {1,2,3,4}) und möchte in eine Zeichenfolge des Formulars konvertieren "1,2,3,4" Was ist der sauberste Weg, dies in C ++ zu tun? In Python würde ich das so machen: &gt;&gt;&gt; array = [1,2,3,4] &gt;&gt;&gt; ",".join(map(str,array)) '1,2,3,4'
92 c++  vector  tostring 

7
Überprüfen des Inhalts von Standardcontainern (std :: map) mit gdb
Angenommen, wir haben so etwas: #include &lt;map&gt; int main(){ std::map&lt;int,int&gt; m; m[1] = 2; m[2] = 4; return 0; } Ich möchte in der Lage sein, den Inhalt der Karte zu überprüfen, auf der das Programm von gdb ausgeführt wird. Wenn ich versuche, den Indexoperator zu verwenden, erhalte ich: (gdb) …
92 c++  stl  map  gdb 

3
Warum den Konstruktor explizit löschen?
Wann / warum sollte ich meinen Konstruktor explizit löschen wollen? Angenommen, der Grund ist, seine Verwendung zu verhindern, warum nicht einfach machen private? class Foo { public: Foo() = delete; };
92 c++ 

6
Vorlagenspezialisierung einer einzelnen Methode aus einer Vorlagenklasse
In Anbetracht der Tatsache, dass der folgende Header, der meine Vorlagenklasse enthält, in mindestens zwei .CPPDateien enthalten ist, wird dieser Code korrekt kompiliert: template &lt;class T&gt; class TClass { public: void doSomething(std::vector&lt;T&gt; * v); }; template &lt;class T&gt; void TClass&lt;T&gt;::doSomething(std::vector&lt;T&gt; * v) { // Do something with a vector of …



4
Explizite Vorlageninstanziierung - wann wird sie verwendet?
Nach einigen Wochen versuche ich, mein Wissen über Vorlagen mit dem Buch Vorlagen - Der vollständige Leitfaden von David Vandevoorde und Nicolai M. Josuttis zu erweitern und zu erweitern. Was ich derzeit zu verstehen versuche, ist die explizite Instanziierung von Vorlagen . Ich habe eigentlich kein Problem mit dem Mechanismus …
92 c++  templates 

3
C ++ Unterschied zwischen std :: ref (T) und T &?
Ich habe einige Fragen zu diesem Programm: #include &lt;iostream&gt; #include &lt;type_traits&gt; #include &lt;functional&gt; using namespace std; template &lt;typename T&gt; void foo ( T x ) { auto r=ref(x); cout&lt;&lt;boolalpha; cout&lt;&lt;is_same&lt;T&amp;,decltype(r)&gt;::value; } int main() { int x=5; foo (x); return 0; } Die Ausgabe ist: false Ich möchte wissen, wenn std::refes …
92 c++  reference  ref 

8
So finden Sie einen Fehler "Double Free oder Korruption"
Wenn ich mein (C ++) Programm ausführe, stürzt es mit diesem Fehler ab. * glibc erkannt * ./load: doppelt frei oder beschädigt (! prev): 0x0000000000c6ed50 *** Wie kann ich den Fehler aufspüren? Ich habe versucht, print ( std::cout) -Anweisungen zu verwenden, ohne Erfolg. Könnte gdbdas einfacher machen?
92 c++  c  debugging  free 

5
Warum ist diese Struktur Größe 3 statt 2?
Ich habe diese Struktur definiert: typedef struct { char A:3; char B:3; char C:3; char D:3; char E:3; } col; Das sizeof(col)gibt mir die Ausgabe von 3, aber sollte es nicht 2 sein? Wenn ich nur ein Element kommentiere, sizeofist das 2. Ich verstehe nicht warum: Fünf Elemente mit 3 …
91 c++  c  struct 


6
Vorkompilierte Header mit GCC
Hat jemand Erfolg damit gehabt, vorkompilierte Header mit GCC zu arbeiten? Ich hatte kein Glück bei meinen Versuchen und ich habe nicht viele gute Beispiele für die Einrichtung gesehen. Ich habe Cygwin GCC 3.4.4 und 4.0 unter Ubuntu ausprobiert.

2
Wann wirken sich zusätzliche Klammern anders als auf die Priorität des Operators aus?
Klammern in C ++ werden an vielen Stellen verwendet: z. B. in Funktionsaufrufen und Gruppierungsausdrücken, um die Priorität von Operatoren zu überschreiben. Abgesehen von illegalen zusätzlichen Klammern (wie z. B. Argumentlisten für Funktionsaufrufe) ist eine allgemeine, aber nicht absolute Regel von C ++, dass zusätzliche Klammern niemals schaden : 5.1 …


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.