Domande taggate «c++»

C ++ è un linguaggio di programmazione generico. È stato originariamente progettato come estensione di C e ha una sintassi simile, ma ora è un linguaggio completamente diverso. Utilizzare questo tag per domande sul codice (da compilare) compilato con un compilatore C ++. Utilizzare un tag specifico della versione per domande relative a una revisione standard specifica [C ++ 11], [C ++ 14], [C ++ 17] o [C ++ 20], ecc.

12
Preprocessore C ++ __VA_ARGS__ numero di argomenti
Domanda semplice per la quale non ho trovato risposta in rete. Nelle macro di argomenti variadici, come trovare il numero di argomenti? Sto bene con il preprocessore boost, se ha la soluzione. Se fa la differenza, sto cercando di convertire un numero variabile di argomenti macro per potenziare la sequenza, …









6
Perché il vettore <bool> non è un contenitore STL?
L'articolo 18 del libro di Scott Meyers STL efficace: 50 modi specifici per migliorare l'uso della libreria di modelli standard dice di evitare vector &lt;bool&gt;in quanto non è un contenitore STL e non contiene realmente bools. Il codice seguente: vector &lt;bool&gt; v; bool *pb =&amp;v[0]; non verrà compilato, violando un …


16
Modi puliti per scrivere più cicli "for"
Per un array con più dimensioni, di solito è necessario scrivere un forciclo per ciascuna delle sue dimensioni. Per esempio: vector&lt; vector&lt; vector&lt;int&gt; &gt; &gt; A; for (int k=0; k&lt;A.size(); k++) { for (int i=0; i&lt;A[k].size(); i++) { for (int j=0; j&lt;A[k][i].size(); j++) { do_something_on_A(A[k][i][j]); } } } double B[10][8][5]; …
98 c++  for-loop 

4
Qual è la risposta corretta per cout << a ++ << a ;?
Recentemente in un'intervista c'era una seguente domanda di tipo oggettivo. int a = 0; cout &lt;&lt; a++ &lt;&lt; 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 …
98 c++  c++-faq 

14
Devo ereditare da std :: exception?
Ho visto almeno una fonte affidabile (una classe C ++ che ho preso) raccomandare che le classi di eccezioni specifiche dell'applicazione in C ++ dovrebbero ereditare da std::exception. Non sono chiaro i vantaggi di questo approccio. In C # le ragioni per ereditare da ApplicationExceptionsono chiare: ottieni una manciata di …

4
Perché copiamo e poi ci spostiamo?
Ho visto del codice da qualche parte in cui qualcuno ha deciso di copiare un oggetto e successivamente spostarlo in un membro dati di una classe. Questo mi ha lasciato confuso in quanto pensavo che il punto centrale dello spostamento fosse evitare di copiare. Ecco l'esempio: struct S { S(std::string …

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.