std::swap()est utilisé par de nombreux conteneurs std (tels que std::listet std::vector) pendant le tri et même l'affectation. Mais l'implémentation std de swap()est très généralisée et plutôt inefficace pour les types personnalisés. Ainsi, l'efficacité peut être gagnée en surchargeant std::swap()avec une implémentation spécifique de type personnalisé. Mais comment pouvez-vous l'implémenter pour …
Le code ci-dessous fonctionne sur Visual Studio 2008 avec et sans optimisation. Mais cela ne fonctionne que sur g ++ sans optimisation (O0). #include <cstdlib> #include <iostream> #include <cmath> double round(double v, double digit) { double pow = std::pow(10.0, digit); double t = v * pow; //std::cout << "t:" << …
En C ++ 14, les conteneurs associatifs semblent avoir changé depuis C ++ 11 - [associative.reqmts] / 13 dit: Les modèles de fonction membre find, count, lower_bound, upper_boundet equal_rangene participent pas à la résolution de surcharge sauf si le type Compare::is_transparentexiste. Quel est le but de rendre un comparateur "transparent"? …
J'ai le morceau de code suivant qui demande à l'utilisateur son nom et son état: #include <iostream> #include <string> int main() { std::string name; std::string state; if (std::cin >> name && std::getline(std::cin, state)) { std::cout << "Your name is " << name << " and you live in " << …
J'ai commencé à apprendre le C ++ pour ma classe de programmation. J'ai téléchargé ce programme "Hello World": #include <iostream> using namespace std; int main() { cout << "Hello, World!"; return 0; } mais Turbo C ++ se plaint: Error D:\HELLO.CPP 1: Unable to open include file 'IOSTREAM' Error D:\HELLO.CPP …
Récemment, dans une interview, il y avait une question de type objectif suivante. int a = 0; cout << a++ << a; Réponses: une. 10 b. 01 ch. comportement indéfini J'ai répondu au choix b, c'est-à-dire que la sortie serait "01". Mais à ma grande surprise plus tard, un intervieweur …
J'ai du mal à voir l'utilité des pointeurs de fonction. Je suppose que cela peut être utile dans certains cas (ils existent, après tout), mais je ne peux pas penser à un cas où il est préférable ou inévitable d'utiliser un pointeur de fonction. Pourriez-vous donner un exemple de bonne …
Les opérateurs de décalage gauche et droit (<< et >>) sont déjà disponibles en C ++. Cependant, je ne savais pas comment effectuer des opérations de décalage circulaire ou de rotation. Comment effectuer des opérations telles que «Rotation à gauche» et «Rotation à droite»? Rotation à droite deux fois ici …
Les parenthèses en C ++ sont utilisées à de nombreux endroits: par exemple dans les appels de fonction et les expressions de regroupement pour remplacer la priorité des opérateurs. En dehors des parenthèses supplémentaires illégales (comme autour des listes d'arguments d'appel de fonction), une règle générale - mais pas absolue …
J'ai une fonction avec le même nom, mais avec une signature différente dans une base et des classes dérivées. Lorsque j'essaie d'utiliser la fonction de la classe de base dans une autre classe qui hérite du dérivé, je reçois une erreur. Voir le code suivant: class A { public: void …
Comme le titre l'indique, Quelle est exactement la règle du «comme si»? Une réponse typique que l'on obtiendrait est: La règle qui autorise toutes les transformations de code qui ne changent pas le comportement observable du programme De temps en temps, nous continuons à obtenir des comportements de certaines implémentations …
Si je déclare un objet enveloppé dans un pointeur partagé: std::shared_ptr<myClass> myClassObject(new myClass()); alors j'ai voulu le passer comme argument à une méthode: DoSomething(myClassObject); //the called method void DoSomething(std::shared_ptr<myClass> arg1) { arg1->someField = 4; } Est-ce que ce qui précède incrémente simplement le nombre de références de shared_pt et tout …
Depuis un constructeur de copie MyClass(const MyClass&); et an = surcharge de l'opérateur MyClass& operator = (const MyClass&); ont à peu près le même code, le même paramètre, et ne diffèrent que sur le retour, est-il possible d'avoir une fonction commune pour les deux à utiliser?
La norme C ++ 17 introduit des "guides de déduction de modèles". Je suppose qu'ils ont quelque chose à voir avec la nouvelle déduction d'arguments de modèle pour les constructeurs introduite dans cette version de la norme, mais je n'ai pas encore vu une explication simple, de style FAQ, de …
g++ me donne des erreurs de forme: foo.cc:<line>:<column>: fatal error: <bar>: No such file or directory compilation terminated. C'est la même chose lors de la compilation de programmes C avec gcc. Pourquoi donc? Remarque: cette question a été posée plusieurs fois auparavant, mais à chaque fois, elle était spécifique à …
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.