Ich habe eine Klasse namens Writer, die eine Funktion writeVectorwie folgt hat: void Drawer::writeVector(vector<T> vec, bool index=true) { for (unsigned int i = 0; i < vec.size(); i++) { if (index) { cout << i << "\t"; } cout << vec[i] << "\n"; } } Ich versuche, keinen doppelten Code …
Ich höre, dass constdies in C ++ 11 threadsicher bedeutet . Ist das wahr? Heißt das constjetzt das Äquivalent von Java ‚s synchronized? Gehen ihnen die Schlüsselwörter aus ?
const auto&würde ausreichen, wenn ich schreibgeschützte Operationen ausführen möchte. Ich bin jedoch darauf gestoßen for (auto&& e : v) // v is non-const ein paar Mal in letzter Zeit. Das wundert mich: Ist es möglich, dass in einigen dunklen Eckfällen die Verwendung von Weiterleitungsreferenzen im Vergleich zu auto&oder einen gewissen …
Ich habe gerade drei Tage meines Lebens verloren, als ich einen sehr seltsamen Fehler aufgespürt habe, bei dem unordered_map :: insert () die von Ihnen eingefügte Variable zerstört. Dieses höchst nicht offensichtliche Verhalten tritt nur bei neueren Compilern auf: Ich fand, dass Clang 3.2-3.4 und GCC 4.8 die einzigen Compiler …
Ich habe gerade eine generische Objektfabrik geschrieben und die Boost-Präprozessor-Metabibliothek verwendet, um eine variable Vorlage zu erstellen (mit 2010 und ohne Unterstützung). Meine Funktion verwendet rval-Referenzen und std::forwardfür eine perfekte Weiterleitung, und es hat mich zum Nachdenken gebracht ... Wenn C ++ 0X herauskommt und ich einen Standard-Compiler habe, würde …
Ich habe einen Code, der mehr oder weniger so ist: #include <bitset> enum Flags { A = 1, B = 2, C = 3, D = 5, E = 8, F = 13, G = 21, H, I, J, K, L, M, N, O }; void apply_known_mask(std::bitset<64> &bits) { const …
C ++ 11 bietet mehrere Möglichkeiten zum Durchlaufen von Containern. Beispielsweise: Bereichsbasierte Schleife for(auto c : container) fun(c) std :: for_each for_each(container.begin(),container.end(),fun) Was ist jedoch die empfohlene Methode, um zwei (oder mehr) Container derselben Größe zu durchlaufen, um Folgendes zu erreichen: for(unsigned i = 0; i < containerA.size(); ++i) { …
Im Allgemeinen gehe ich davon aus, dass Streams nicht synchronisiert sind. Es ist Sache des Benutzers, eine entsprechende Sperrung vorzunehmen. Erhalten Dinge wie couteine Sonderbehandlung in der Standardbibliothek? Das heißt, wenn mehrere Threads schreiben, coutkönnen sie das coutObjekt beschädigen? Ich verstehe, dass selbst wenn synchronisiert, Sie immer noch zufällig verschachtelte …
Wie kann ich über ein Tupel iterieren (mit C ++ 11)? Ich habe folgendes versucht: for(int i=0; i<std::tuple_size<T...>::value; ++i) std::get<i>(my_tuple).do_sth(); aber das funktioniert nicht: Fehler 1: Entschuldigung, nicht implementiert: 'Listener ...' kann nicht in eine Argumentliste mit fester Länge erweitert werden. Fehler 2: Ich kann nicht in einem konstanten Ausdruck …
Ich sehe viele Antworten, in denen jemand vorschlägt <random>, Zufallszahlen zu generieren, normalerweise zusammen mit Code wie diesem: std::random_device rd; std::mt19937 gen(rd()); std::uniform_int_distribution<> dis(0, 5); dis(gen); Normalerweise ersetzt dies eine Art "unheiligen Greuel" wie: srand(time(NULL)); rand()%6; Wir könnten den alten Weg kritisieren , indem wir argumentieren, dass er time(NULL)eine niedrige …
Gibt es eine Möglichkeit, ein enum classFeld in den zugrunde liegenden Typ zu konvertieren ? Ich dachte, das wäre automatisch, aber anscheinend nicht. enum class my_fields : unsigned { field = 1 }; unsigned a = my_fields::field; Diese Abtretung wird von GCC abgelehnt. error: cannot convert 'my_fields' to 'unsigned int' …
Bei fast dem gesamten Code, den ich schreibe, habe ich häufig Probleme mit der Reduzierung von Sätzen in Sammlungen, die letztendlich zu naiven "Wenn" -Bedingungen führen. Hier ist ein einfaches Beispiel: for(int i=0; i<myCollection.size(); i++) { if (myCollection[i] == SOMETHING) { DoStuff(); } } Mit funktionalen Sprachen kann ich das …
Angenommen, ich habe eine Reihe von Anweisungen, die ich in einer festen Reihenfolge ausführen möchte. Ich möchte g ++ mit Optimierungsstufe 2 verwenden, damit einige Anweisungen neu angeordnet werden können. Welche Werkzeuge hat man, um eine bestimmte Reihenfolge von Anweisungen durchzusetzen? Betrachten Sie das folgende Beispiel. using Clock = std::chrono::high_resolution_clock; …
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.