Problem: Ich habe eine ganze Zahl; Diese Ganzzahl muss in einen stl :: string-Typ konvertiert werden. In der Vergangenheit habe stringstreamich eine Konvertierung durchgeführt, und das ist nur ein bisschen umständlich. Ich weiß, dass der C-Weg darin besteht, a zu machen sprintf, aber ich würde viel lieber eine typsichere C …
CStringist sehr praktisch, während std::stringes besser mit STL-Container kompatibel ist. Ich benutze hash_map. Allerdings hash_mapunterstützt nicht CStringals Schlüssel, so dass ich konvertieren wollen CStringin std::string. Das Schreiben einer CStringHash-Funktion scheint viel Zeit in Anspruch zu nehmen. CString -----> std::string Wie kann ich das machen? std::string -----> CString: inline CString toCString(std::string …
Wenn ich http://en.cppreference.com/w/cpp/string/basic_string_view als Referenz verwende, sehe ich keine Möglichkeit, dies eleganter zu tun: std::string s = "hello world!"; std::string_view v = s; v = v.substr(6, 5); // "world" Schlimmer noch, der naive Ansatz ist eine Falle und hinterlässt veinen baumelnden Hinweis auf eine vorübergehende: std::string s = "hello world!"; …
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? …
string s; bool b[] = {s=="", s==s.c_str(), s.c_str()==""}; setzt b[] = {true, true, false}; Warum ist b[2]falsch? Wenn A==Bund A==C, sollte das nicht bedeuten B==C?
#include<iostream> #include<string> template <typename T> void swap(T a , T b) { T temp = a; a = b; b = temp; } template <typename T1> void swap1(T1 a , T1 b) { T1 temp = a; a = b; b = temp; } int main() { int a = …
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, …
Dieses Programm (kompiliert mit Option -std=c++17) #include <stdio.h> #include <string> void* operator new(std::size_t nrOfBytes) { printf("allocate %zd bytes on heap\n", nrOfBytes); void* p = malloc(nrOfBytes); if (p) { return p; } else { throw std::bad_alloc{}; } } int main() { // new operator is called when compiled with Clang or …
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.