Dans le langage de programmation C ++, la bibliothèque standard C ++ est une collection de classes et de fonctions, qui peuvent ou non être écrites dans le langage de base, et font partie de C ++
Je veux convertir un std::stringen minuscule. Je connais la fonction tolower(), mais dans le passé, j'ai eu des problèmes avec cette fonction et ce n'est pas idéal de toute façon car l'utilisation avec un std::stringnécessiterait une itération sur chaque caractère. Existe-t-il une alternative qui fonctionne à 100% du temps?
Quelqu'un a attiré mon attention sur cet article qui prétend (je paraphrase) que le terme STL est utilisé à mauvais escient pour faire référence à l'ensemble de la bibliothèque standard C ++ au lieu des parties qui ont été extraites de SGI STL. (...) il fait référence à la "STL", …
J'aime beaucoup les vecteurs. Ils sont astucieux et rapides. Mais je sais que cette chose appelée valarray existe. Pourquoi utiliser un valarray au lieu d'un vecteur? Je sais que les valarrays contiennent du sucre syntaxique, mais à part ça, quand sont-ils utiles?
J'ai besoin de parcourir un ensemble et de supprimer les éléments qui répondent à un critère prédéfini. Voici le code de test que j'ai écrit: #include <set> #include <algorithm> void printElement(int value) { std::cout << value << " "; } int main() { int initNum[] = { 0, 1, 2, …
Cette réponse donne un bel aperçu de haut niveau de l'optimisation des chaînes courtes (SSO). Cependant, j'aimerais savoir plus en détail comment cela fonctionne dans la pratique, en particulier dans l'implémentation libc ++: Quelle doit être la longueur de la chaîne pour être éligible au SSO? Cela dépend-il de l'architecture …
Y a-t-il des pièges pour des systèmes d'exploitation spécifiques, que je devrais connaître? Il existe de nombreux doublons ( 1 , 2 , 3 , 4 , 5 ) de cette question, mais ils ont reçu une réponse il y a des décennies. Les réponses très votées à nombre de …
Section 23.3.7 Classe vector<bool>[vector.bool], paragraphe 1 stipule: template <class Allocator> class vector<bool, Allocator> { public: // types: typedef bool const_reference; ... Cependant, ce programme ne parvient pas à se compiler lors de l'utilisation de libc ++: #include <vector> #include <type_traits> int main() { static_assert(std::is_same<std::vector<bool>::const_reference, bool>{}, "?"); } De plus, je …
J'ai un projet qui utilise actuellement C ++ 11/14, mais il nécessite quelque chose comme std::filesystem, qui n'est disponible qu'en C ++ 17, et par conséquent je n'ai pas la chance de l'utiliser actuellement. Je vois, cependant, qu'il est disponible dans mon compilateur actuel en tant que std::experimental::filesystem. Est-ce une …
Selon cppreference , std::type_info::operator!=est supprimé avec C ++ 20, cependant, std::type_info::operator==reste apparemment. Quel est le raisonnement derrière? Je pourrais être d'accord pour comparer l'inégalité comme étant dénuée de sens, mais alors comparer pour l'égalité serait tout aussi insignifiant, non? De même, operator!=de nombreux autres types de bibliothèques standard, y compris …
Existe-t-il un moyen de vérifier si deux fonctions ont la même signature? Par exemple: int funA (int a, int b); int funB (int a, int b); float funC (int a, int b); int funD (float a, int b); Dans cet exemple, funAet funBest la seule combinaison de fonctions à renvoyer …
Je trouve que le comportement de std::string::findn'est pas cohérent avec les conteneurs C ++ standard. Par exemple std::map<int, int> myMap = {{1, 2}}; auto it = myMap.find(10); // it == myMap.end() Mais pour une chaîne, std::string myStr = "hello"; auto it = myStr.find('!'); // it == std::string::npos Pourquoi le myStr.find('!')retour …
J'ai récemment suivi une discussion sur Reddit qui a conduit à une belle comparaison de l' std::visitoptimisation entre les compilateurs. J'ai remarqué ce qui suit: https://godbolt.org/z/D2Q5ED GCC9 et Clang9 (je suppose qu'ils partagent le même stdlib) ne génèrent pas de code pour vérifier et lever une exception sans valeur lorsque …
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.