Domanda

Per ogni contenitore stl è disponibile un contenitore MFC in Visual c ++. Quale è meglio dell'altro in che senso e che cosa usi?

Uso sempre il contenitore STL è sbagliato?

È stato utile?

Soluzione

Le classi di raccolta MFC presentano alcuni vantaggi se lavori all'interno dei confini della terra MFC. Per esempio. ottieni cose come la serializzazione (se i tuoi elementi contenitore ereditano da CObject o simili) e un supporto di debug per " free " ;. MSDN ha una ripartizione di come scegliere tra diversi tipi di raccolta MFC [qui] ( http://msdn.microsoft.com/en-us/library/y1z022s1 (VS.80) .aspx) .

Come impostazione predefinita, mi spingerei verso le classi STL.

Altri suggerimenti

Preferirei sempre i contenitori STL a causa della portabilità.

I contenitori MFC non saranno quasi mai disponibili su Linux.

Anche se non prevedi di usare il tuo codice su Linux ... non sai mai cosa porterà il futuro.

Le persone hanno indicato la portabilità del codice come ragione per usare STL, ma c'è una ragione molto migliore e una che è più nel tuo interesse personale: la portabilità delle abilità e dell'esperienza. A mio parere, quando vai alla ricerca del tuo prossimo lavoro con l'esperienza di STL sul tuo curriculum, ti daranno più opportunità. Perché? STL fa effettivamente parte del C ++ standard e se stavo assumendo, suppongo che qualcuno che conosce STL potrebbe raccogliere i contenitori MFC abbastanza rapidamente, ma non necessariamente farei il contrario se stavo cercando qualcuno con abilità STL.

Dalla fonte:

" E francamente la squadra ti darà la stessa risposta. Le classi di raccolta MFC sono lì solo per compatibilità con le versioni precedenti. C ++ ha uno standard per le classi di raccolta e questa è la libreria C ++ standard. Non esiste alcun inconveniente tecnico per l'utilizzo di una libreria standard in un'applicazione MFC.

Non prevediamo di apportare modifiche significative in questo settore.

Ronald Laeremans Responsabile unità prodotto sostituta Vsual C ++ Team quot &;

Predilige la portabilità e la libertà di proprietà. Scegli l'ampli STL &; Boost (www.boost.org).

Quelli STL. Scherzi a parte.

Uso i contenitori STL per molte ragioni: sono ben testati, ben documentati e ben compresi dalle persone di tutto il mondo. Inoltre vengono costantemente migliorati: guarda tutte le nuove funzionalità aggiunte da Boost ed è tutto compatibile con le versioni precedenti. E se vuoi davvero piegare la mente, leggi il moderno design C ++ di Alexandrescu: schemi di programmazione e progettazione generici applicati. L'uso di Boost e STL è necessario per utilizzare molte delle sue tecniche.

Qualcos'altro da considerare è il S TL è " S tandard " ma il M FC è solo " M icrosoft " ;. Qualsiasi programmatore C ++ generico casuale capirà probabilmente STL, ma solo un vecchio programmatore Microsoft conoscerà MFC. Inoltre, Microsoft ha praticamente abbandonato MFC.

Anche quando ti mostrano numeri che i contenitori MFC sono più veloci, possono essere senza eccezioni e fare un doppio espresso gratuito: basta chiudere gli occhi e usare il tasto DEL (noto anche come tasto NO-LOCK-IN).

Puoi fare tutto questo e in modo più portabile e collegabile come le soluzioni di oggetti di scena possono solo sognare. STL fino in fondo ..

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top