C ist etwas, nicht genau, eine Teilmenge von C ++. Daher können wir die meisten C-Funktionen / Header in C ++ verwenden, indem wir den Namen ein wenig ändern ( stdio.hto cstdio, stdlib.hto cstdlib). Meine Frage ist eigentlich eine Art Semantik. In C ++ Code (unter Verwendung der neuesten Version …
Beim Lesen der Verwendung von std :: rand habe ich diesen Code auf cppreference.com gefunden int x = 7; while(x > 6) x = 1 + std::rand()/((RAND_MAX + 1u)/6); // Note: 1+rand()%6 is biased Was ist falsch an dem Ausdruck auf der rechten Seite? Versuchte es und es funktioniert perfekt.
Ich habe das erst vor kurzem geschrieben: template <long int T_begin, long int T_end> class range_class { public: class iterator { friend class range_class; public: long int operator *() const { return i_; } const iterator &operator ++() { ++i_; return *this; } iterator operator ++(int) { iterator copy(*this); ++i_; …
ifstream f; f.open(fileName); if ( f.fail() ) { // I need error message here, like "File not found" etc. - // the reason of the failure } Wie erhalte ich eine Fehlermeldung als Zeichenfolge?
Mehr als tausend Worte: #include<string> #include<iostream> class SayWhat { public: SayWhat& operator[](const std::string& s) { std::cout<<"here\n"; // To make sure we fail on function entry std::cout<<s<<"\n"; return *this; } }; int main() { SayWhat ohNo; // ohNo[1]; // Does not compile. Logic prevails. ohNo[0]; // you didn't! this compiles. return …
C ++ 11 hat einige neue Funktionen zur Konvertierung von Zeichenfolgen hinzugefügt: http://en.cppreference.com/w/cpp/string/basic_string/stoul Es umfasst stoi (string to int), stol (string to long), stoll (string to long long), stoul (string to unsigned long), stoull (string to unsigned long long). Bemerkenswert in seiner Abwesenheit ist eine stou-Funktion (Zeichenfolge zu vorzeichenlos). Gibt …
#include <iostream> #include <cmath> /* Intentionally incorrect abs() which seems to override std::abs() */ int abs(int a) { return a > 0? -a : a; } int main() { int a = abs(-5); int b = std::abs(-5); std::cout<< a << std::endl << b << std::endl; return 0; } Ich habe …
Warum ist keine std::initializer_listKernsprache eingebaut? Es scheint mir, dass es ein ziemlich wichtiges Feature von C ++ 11 ist und dennoch kein eigenes reserviertes Schlüsselwort (oder ähnliches) hat. Stattdessen handelt initializer_listes sich nur um eine Vorlagenklasse aus der Standardbibliothek, die über eine spezielle implizite Zuordnung aus der neuen Syntax der …
Gibt es eine Möglichkeit, alle Vorkommen eines Teilstrings durch einen anderen String in zu ersetzen std::string? Zum Beispiel: void SomeFunction(std::string& str) { str = str.replace("hello", "world"); //< I'm looking for something nice like this }
Ich sehe oft Quellcode mit Typen wie uint32, uint64 und ich frage mich, ob sie vom Programmierer im Anwendungscode definiert werden sollten oder ob sie in einem Standard-lib-Header definiert sind. Was ist der beste Weg, um diese Typen in meinem Anwendungsquellcode zu haben?
Ich versuche zu verstehen, wie es std::unique_ptrfunktioniert und dafür habe ich dieses Dokument gefunden. Der Autor geht von folgendem Beispiel aus: #include <utility> //declarations of unique_ptr using std::unique_ptr; // default construction unique_ptr<int> up; //creates an empty object // initialize with an argument unique_ptr<int> uptr (new int(3)); double *pd= new double; …
Ich versuche mit g++und entweder den Flags -std=c++11oder zu kompilieren c++0x. Ich erhalte jedoch diesen Fehler cc1plus: error: unrecognized command line option "-std=c++11" g ++ --version g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-54) Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. …
Ich habe kürzlich Code geändert und einen bereits vorhandenen Fehler in einer Zeile innerhalb einer Funktion gefunden: std:;string x = y; Dieser Code wird immer noch kompiliert und funktioniert wie erwartet. Die Zeichenfolgendefinition funktioniert, weil diese Datei vorhanden ist using namespace std;, sodass sie überhaupt nicht std::erforderlich war. Die Frage …
Ich habe versucht, den Schnittpunkt zwischen zwei std :: set in C ++ zu finden, aber es wird immer wieder ein Fehler angezeigt. Ich habe dafür einen kleinen Beispieltest erstellt #include <iostream> #include <vector> #include <algorithm> #include <set> using namespace std; int main() { set<int> s1; set<int> s2; s1.insert(1); s1.insert(2); …
C ++ 0x fügt hinzu hash<...>(...). Ich konnte jedoch keine hash_combineFunktion finden , wie in Boost dargestellt . Was ist der sauberste Weg, um so etwas zu implementieren? Vielleicht mit C ++ 0x xor_combine?
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.