Articles of linguaggio

È legale confrontare i puntatori penzolanti?

È legale confrontare i puntatori penzolanti? int *p, *q; { int a; p = &a; } { int b; q = &b; } std::cout << (p == q) << '\n'; Nota come sia p che q puntano agli oggetti che sono già spariti. È legale?

Come posso calcolare un prodotto cartesiano in modo iterativo?

Questa domanda chiede come calcolare il prodotto cartesiano di un dato numero di vettori. Poiché il numero di vettori è noto in anticipo e piuttosto piccolo, la soluzione è facilmente ottenibile con cicli annidati. Supponiamo ora che vi venga dato, nella vostra lingua preferita, un vettore di vettori (o un elenco di liste, o un […]

Un vettore spostato da sempre vuoto?

So che generalmente lo standard pone pochi requisiti sui valori che sono stati spostati da: N3485 17.6.5.15 [lib.types.movedfrom] / 1: Gli oggetti di tipi definiti nella libreria standard C ++ possono essere spostati da (12.8). Le operazioni di spostamento possono essere specificate esplicitamente o generate implicitamente. Se non diversamente specificato, tali oggetti spostati da devono […]

Usare un sacco di metodi statici è una brutta cosa?

Tendo a dichiarare come statici tutti i metodi di una class quando quella class non richiede di tenere traccia degli stati interni. Ad esempio, se ho bisogno di trasformare A in B e non fare affidamento su qualche stato interno C che può variare, creo una trasformazione statica. Se c’è uno stato interno C che […]

C ++: logica dietro la regola del nascondiglio

Qual è la logica alla base della regola del nascondiglio in C ++? class A { void f(int); } class B : public A { void f(double); } // B::f(int) is hidden Se si tratta di una funzionalità significativa, penso che dovrebbe essere ansible hide le funzioni senza definire nuove funzioni con lo stesso nome: […]

Come si valuta la probabilità di collisione dell’hash?

Sto sviluppando un’applicazione di back-end per un sistema di ricerca. Il sistema di ricerca copia i file in una directory temporanea e fornisce loro nomi casuali. Quindi passa i nomi dei file temporanei alla mia applicazione. La mia applicazione deve elaborare ogni file entro un periodo di tempo limitato, altrimenti viene chiuso – è una […]

Come posso visualizzare la rappresentazione binaria di un float o doppio?

Mi piacerebbe visualizzare la rappresentazione binaria (o esadecimale) di un numero in virgola mobile. So come convertire a mano (usando il metodo qui ), ma sono interessato a vedere esempi di codice che facciano lo stesso. Sebbene io sia particolarmente interessato alle soluzioni C ++ e Java, mi chiedo se alcune lingue lo rendono particolarmente […]

Cos’è un tipo esistenziale?

Ho letto l’articolo di Wikipedia Tipi esistenziali . Ho capito che si chiamano tipi esistenziali a causa dell’operatore esistenziale (∃). Non sono sicuro di quale sia il punto, però. Qual è la differenza tra T = ∃X { X a; int f(X); } e T = ∀x { X a; int f(X); } ?

Asincrono vs Multithreading – C’è una differenza?

Una chiamata asincrona crea sempre un nuovo thread? Qual è la differenza tra i due? Una chiamata asincrona crea sempre o usa un nuovo thread? Wikipedia dice : Nella programmazione per computer, eventi asincroni sono quelli che si verificano indipendentemente dal stream del programma principale. Le azioni asincrone sono azioni eseguite in uno schema non […]

Verificare i loop in alto o in basso? (mentre contro fare mentre)

Quando stavo frequentando il CS al college (metà anni ’80), una delle idee ripetute costantemente era quella di scrivere sempre loop che testano in alto (mentre …) piuttosto che in basso (do … while) del ciclo continuo. Queste nozioni erano spesso supportate da riferimenti a studi che mostravano che i loop testati in alto erano […]