Nel linguaggio di programmazione C ++, la libreria standard C ++ è una raccolta di classi e funzioni, che possono essere scritte o meno nel linguaggio di base e fanno parte di C ++
Voglio convertire un std::stringin minuscolo. Sono a conoscenza della funzione tolower(), tuttavia in passato ho avuto problemi con questa funzione e non è certo l'ideale in quanto l'uso con un std::stringrichiede l'iterazione su ogni personaggio. Esiste un'alternativa che funziona il 100% delle volte?
Qualcuno ha portato questo articolo alla mia attenzione secondo cui (sto parafrasando) il termine STL viene utilizzato in modo improprio per fare riferimento all'intera libreria standard C ++ anziché alle parti che sono state prese da SGI STL. (...) si riferisce alla "STL", nonostante il fatto che pochissime persone usano …
Mi piacciono molto i vettori. Sono eleganti e veloci. Ma so che esiste una cosa chiamata valarray. Perché dovrei usare un valarray invece di un vettore? So che i valarrays hanno dello zucchero sintattico, ma a parte questo, quando sono utili?
Devo passare attraverso un set e rimuovere elementi che soddisfano un criterio predefinito. Questo è il codice di test che ho scritto: #include <set> #include <algorithm> void printElement(int value) { std::cout << value << " "; } int main() { int initNum[] = { 0, 1, 2, 3, 4, 5, …
Questa risposta offre una bella panoramica di alto livello sull'ottimizzazione delle stringhe brevi (SSO). Tuttavia, vorrei sapere più in dettaglio come funziona in pratica, in particolare nell'implementazione di libc ++: Quanto deve essere breve la stringa per qualificarsi per SSO? Dipende dall'architettura di destinazione? In che modo l'implementazione distingue tra …
Ci sono insidie per sistemi operativi specifici, dovrei essere a conoscenza? Ci sono molti duplicati ( 1 , 2 , 3 , 4 , 5 ) di questa domanda ma hanno avuto risposta decenni fa. Le risposte molto alte in molte di queste domande sono oggi sbagliate. Metodi da altri …
La sezione 23.3.7 Classe vector<bool>[vector.bool], paragrafo 1 afferma: template <class Allocator> class vector<bool, Allocator> { public: // types: typedef bool const_reference; ... Tuttavia questo programma non riesce a compilare quando si utilizza libc ++: #include <vector> #include <type_traits> int main() { static_assert(std::is_same<std::vector<bool>::const_reference, bool>{}, "?"); } Inoltre noto che lo standard …
Cosa significa la frase std::string::nposnel seguente frammento di codice? found = str.find(str2); if (found != std::string::npos) std::cout << "first 'needle' found at: " << int(found) << std::endl;
Ho un progetto che attualmente utilizza C ++ 11/14, ma richiede qualcosa di simile std::filesystem, che è disponibile solo in C ++ 17, e quindi non ho la possibilità di usarlo attualmente. Vedo, tuttavia, che è disponibile nel mio compilatore attuale come std::experimental::filesystem. È una buona idea utilizzare funzionalità sperimentali, …
Secondo cppreference , std::type_info::operator!=viene rimosso con C ++ 20, tuttavia, a std::type_info::operator==quanto pare rimane. Qual è il ragionamento dietro? Potrei essere d'accordo sul fatto che il confronto per l'ineguaglianza sia privo di significato, ma poi il confronto per l'uguaglianza sarebbe altrettanto insignificante, no? Allo stesso modo, operator!=di molti altri tipi …
C'è un modo per verificare se due funzioni hanno la stessa firma? Per esempio: int funA (int a, int b); int funB (int a, int b); float funC (int a, int b); int funD (float a, int b); In questo esempio, funAed funBè l'unica combinazione di funzioni che dovrebbero ritornare …
Trovo che il comportamento std::string::findsia incompatibile con i contenitori C ++ standard. Per esempio std::map<int, int> myMap = {{1, 2}}; auto it = myMap.find(10); // it == myMap.end() Ma per una stringa, std::string myStr = "hello"; auto it = myStr.find('!'); // it == std::string::npos Perché il reso non dovrebbe invece …
Di recente ho seguito una discussione su Reddit che ha portato a un bel confronto di std::visitottimizzazione tra i compilatori. Ho notato quanto segue: https://godbolt.org/z/D2Q5ED Sia GCC9 che Clang9 (immagino condividano lo stesso stdlib) non generano codice per controllare e generare un'eccezione senza valore quando tutti i tipi soddisfano alcune …
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.