std::swap()viene utilizzato da molti contenitori std (come std::liste std::vector) durante l'ordinamento e anche l'assegnazione. Ma l'implementazione standard di swap()è molto generalizzata e piuttosto inefficiente per i tipi personalizzati. Pertanto l'efficienza può essere ottenuta sovraccaricando std::swap()con un'implementazione specifica del tipo personalizzata. Ma come puoi implementarlo in modo che venga utilizzato dai …
Il codice seguente funziona su Visual Studio 2008 con e senza ottimizzazione. Ma funziona solo su g ++ senza ottimizzazione (O0). #include <cstdlib> #include <iostream> #include <cmath> double round(double v, double digit) { double pow = std::pow(10.0, digit); double t = v * pow; //std::cout << "t:" << t << …
In C ++ 14, i contenitori associativi sembrano essere cambiati da C ++ 11 - [associative.reqmts] / 13 dice: I modelli funzione membro find, count, lower_bound, upper_bound, e equal_rangenon devono partecipare alla risoluzione di sovraccarico a meno che il tipo Compare::is_transparentesiste. Qual è lo scopo di rendere "trasparente" un comparatore? …
Ho la seguente parte di codice che richiede all'utente il nome e lo stato: #include <iostream> #include <string> int main() { std::string name; std::string state; if (std::cin >> name && std::getline(std::cin, state)) { std::cout << "Your name is " << name << " and you live in " << state; …
Ho iniziato a imparare il C ++ per la mia classe di programmazione. Ho scaricato questo programma "Hello World": #include <iostream> using namespace std; int main() { cout << "Hello, World!"; return 0; } ma Turbo C ++ si lamenta: Error D:\HELLO.CPP 1: Unable to open include file 'IOSTREAM' Error …
Recentemente in un'intervista c'era una seguente domanda di tipo oggettivo. int a = 0; cout << a++ << a; Risposte: un. 10 b. 01 c. comportamento indefinito Ho risposto alla scelta b, ovvero l'output sarebbe "01". Ma in seguito, con mia grande sorpresa, un intervistatore mi ha detto che la …
Ho problemi a vedere l'utilità dei puntatori a funzione. Immagino che possa essere utile in alcuni casi (esistono, dopotutto), ma non riesco a pensare a un caso in cui sia meglio o inevitabile usare un puntatore a funzione. Potresti fornire qualche esempio di buon uso dei puntatori a funzione (in …
Gli operatori di spostamento sinistro e destro (<< e >>) sono già disponibili in C ++. Tuttavia, non sono riuscito a scoprire come eseguire operazioni di spostamento circolare o rotazione. Come possono essere eseguite operazioni come "Ruota a sinistra" e "Ruota a destra"? Rotazione a destra due volte qui Initial …
Le parentesi in C ++ sono usate in molti posti: ad esempio nelle chiamate di funzione e nelle espressioni di raggruppamento per sovrascrivere la precedenza degli operatori. A parte le parentesi extra illegali (come intorno agli elenchi di argomenti delle chiamate di funzione), una regola generale, ma non assoluta, del …
Ho una funzione con lo stesso nome, ma con una firma diversa in una base e classi derivate. Quando cerco di utilizzare la funzione della classe base in un'altra classe che eredita da quella derivata, ricevo un errore. Vedere il codice seguente: class A { public: void foo(string s){}; }; …
Come dice il titolo, Cos'è esattamente la regola "come se"? Una tipica risposta che si potrebbe ottenere è: La regola che consente tutte le trasformazioni del codice che non modificano il comportamento osservabile del programma Di tanto in tanto continuiamo a ricevere comportamenti da determinate implementazioni attribuite a questa regola. …
Se dichiaro un oggetto racchiuso in un puntatore condiviso: std::shared_ptr<myClass> myClassObject(new myClass()); quindi ho voluto passarlo come argomento a un metodo: DoSomething(myClassObject); //the called method void DoSomething(std::shared_ptr<myClass> arg1) { arg1->someField = 4; } Quanto sopra incrementa semplicemente il conteggio dei riferimenti di shared_pt e tutto va bene? O lascia un …
g++ mi da errori del modulo: foo.cc:<line>:<column>: fatal error: <bar>: No such file or directory compilation terminated. È lo stesso quando si compilano programmi C con gcc. Perché? Nota: questa domanda è stata posta molte volte in passato, ma ogni volta era specifica per la situazione di chi chiedeva. Lo …
Poiché un costruttore di copie MyClass(const MyClass&); e un sovraccarico dell'operatore = MyClass& operator = (const MyClass&); hanno più o meno lo stesso codice, lo stesso parametro e differiscono solo al ritorno, è possibile avere una funzione comune da utilizzare per entrambi?
Lo standard C ++ 17 introduce "guide alla detrazione dei modelli". Immagino che abbiano qualcosa a che fare con la nuova deduzione dell'argomento del modello per i costruttori introdotta in questa versione dello standard, ma non ho ancora visto una semplice spiegazione in stile FAQ di cosa sono ea cosa …
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.