In der Programmiersprache C ++ ist die C ++ - Standardbibliothek eine Sammlung von Klassen und Funktionen, die möglicherweise in der Kernsprache geschrieben sind oder nicht und Teil von C ++ sind
Gibt es eine Möglichkeit zu überprüfen, ob zwei Funktionen dieselbe Signatur haben? Zum Beispiel: int funA (int a, int b); int funB (int a, int b); float funC (int a, int b); int funD (float a, int b); In diesem Beispiel ist funAund funBdie einzige Kombination von Funktionen, die zurückgegeben …
Ich finde das Verhalten von std::string::findinkonsistent mit Standard-C ++ - Containern. Z.B std::map<int, int> myMap = {{1, 2}}; auto it = myMap.find(10); // it == myMap.end() Aber für eine Schnur, std::string myStr = "hello"; auto it = myStr.find('!'); // it == std::string::npos Warum sollte die fehlgeschlagene myStr.find('!')Rückkehr nicht myStr.end()statt std::string::npos? …
Ich habe kürzlich eine Reddit-Diskussion verfolgt, die zu einem schönen Vergleich der std::visitOptimierung zwischen Compilern führte. Mir ist Folgendes aufgefallen: https://godbolt.org/z/D2Q5ED Sowohl GCC9 als auch Clang9 (ich denke, sie haben dieselbe stdlib) generieren keinen Code zum Überprüfen und Auslösen einer wertlosen Ausnahme, wenn alle Typen bestimmte Bedingungen erfüllen. Dies führt …
In C ++ 20 <algorithm>erhält der Header zwei neue Algorithmen: shift_left()undshift_right() . Beide akzeptieren jeden LegacyForwardIterator. Denn shift_left()es wird spezifiziert, dass "die Bewegungen in aufsteigender Reihenfolge von ibeginnend ausgeführt werden 0"; denn shift_right()es wird angegeben, dass "wenn ForwardItdie LegacyBidirectionalIterator-Anforderungen erfüllt sind, die Bewegungen in absteigender Reihenfolge von ibeginnend ausgeführt werden …
Angenommen, ich habe den folgenden Code: #include <iostream> #include <string> #include <iomanip> using namespace std; // or std:: int main() { string s1{ "Apple" }; cout << boolalpha; cout << (s1 == "Apple") << endl; //true } Meine Frage ist: Wie prüft das System zwischen diesen beiden? s1ist ein Objekt, …
Meistens wird std::movehier auf die <utility>Version verwiesen . Das std::movein macht<algorithm> tatsächlich das, was sein Name andeutet, move , während das std::movein<utility> sein Argument auf einen x-Wert umwandelt, was im Grunde nur ein Vorverarbeitungsschritt ist, um den x-Wert schließlich in einen l-Wert zu verschieben. Ist es also nicht verwirrend, movewenn …
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.