Al momento ho un std::map<std::string,int>che memorizza un valore intero in un identificatore di stringa univoco e cerco la stringa. Fa principalmente quello che voglio, tranne per il fatto che non tiene traccia dell'ordine di inserzione. Quindi, quando itero la mappa per stampare i valori, questi vengono ordinati in base alla …
Durante la lettura di come utilizzare std :: rand, ho trovato questo codice su cppreference.com int x = 7; while(x > 6) x = 1 + std::rand()/((RAND_MAX + 1u)/6); // Note: 1+rand()%6 is biased Cosa c'è di sbagliato nell'espressione a destra? L'ho provato e funziona perfettamente.
Mi sono ritrovato a scrivere questo solo un po 'fa: 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) { …
ifstream f; f.open(fileName); if ( f.fail() ) { // I need error message here, like "File not found" etc. - // the reason of the failure } Come ottenere un messaggio di errore come stringa?
Vale più di mille parole: #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. …
C ++ 11 ha aggiunto alcune nuove funzioni di conversione delle stringhe: http://en.cppreference.com/w/cpp/string/basic_string/stoul Include stoi (string to int), stol (string to long), stoll (string to long long), stoul (string to unsigned long), stoull (string to unsigned long long). Notevole in sua assenza è una funzione stou (string to unsigned). C'è …
#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; } Mi aspettavo …
Perché non è std::initializer_listintegrato un linguaggio di base? Mi sembra che sia una caratteristica abbastanza importante di C ++ 11 e tuttavia non ha una propria parola chiave riservata (o qualcosa di simile). Invece, initializer_listè solo una classe modello dalla libreria standard che ha una speciale mappatura implicita dalla nuova …
Cerco di capire come std::unique_ptrfunziona e per questo ho trovato questo documento. L'autore parte dal seguente esempio: #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; unique_ptr<double> uptr2 (pd); // …
C'è un modo per sostituire tutte le occorrenze di una sottostringa con un'altra stringa in std::string? Per esempio: void SomeFunction(std::string& str) { str = str.replace("hello", "world"); //< I'm looking for something nice like this }
Vedo spesso codice sorgente che utilizza tipi come uint32, uint64 e mi chiedo se debbano essere definiti dal programmatore nel codice dell'applicazione o se siano definiti in un'intestazione lib standard. Qual è il modo migliore per avere questi tipi nel codice sorgente della mia applicazione?
Ho provato a trovare l'intersezione tra due std :: set in C ++, ma continuo a ricevere un errore. Ho creato un piccolo test di esempio per questo #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); s1.insert(3); s1.insert(4); …
Sto provando a compilare usando g++e i flag -std=c++11o c++0x. Tuttavia, ottengo questo errore cc1plus: error: unrecognized command line option "-std=c++11" g ++ --versione 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. There is …
Di recente stavo modificando del codice e ho trovato un bug preesistente su una riga all'interno di una funzione: std:;string x = y; Questo codice viene comunque compilato e ha funzionato come previsto. La definizione della stringa funziona perché questo file lo è using namespace std;, quindi std::non era necessario …
C ++ 0x aggiunge hash<...>(...). hash_combineTuttavia, non sono riuscito a trovare una funzione, come presentato in boost . Qual è il modo più pulito per implementare qualcosa di simile? Forse, usando 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.