En C ++, comment trouver le type d'une
En C ++, comment trouver le type d'une
J'ai un vector<CustomClass*>et j'ai mis beaucoup d'éléments dans le vecteur et j'ai besoin d'un accès rapide, donc je n'utilise pas de liste. Comment définir la taille initiale du vecteur (par exemple 20 000 places, donc pour éviter la copie lorsque j'en insère un
J'ai lu que la conversion d'un pointeur de fonction en un pointeur de données et vice versa fonctionne sur la plupart des plates-formes mais n'est pas garantie de fonctionner. pourquoi est-ce le cas? Les deux ne devraient-ils pas être simplement des adresses dans la mémoire principale et donc être...
At std::make_unique- il des avantages d'efficacité comme std::make_shared? Par rapport à la construction manuelle std::unique_ptr: std::make_unique<int>(1); // vs std::unique_ptr<int>(new
Un livre C ++ que j'ai lu indique que lorsqu'un pointeur est supprimé à l'aide de l' deleteopérateur, la mémoire à l'emplacement vers lequel il pointe est "libérée" et peut être écrasée. Il indique également que le pointeur continuera à pointer vers le même emplacement jusqu'à ce qu'il soit...
J'ai vu cet exemple dans la documentation de cppreference pourstd::numeric_limits #include <limits> #include <iostream> int main() { std::cout << "type\tlowest()\tmin()\t\tmax()\n\n"; std::cout << "uchar\t" << +std::numeric_limits<unsigned char>::lowest()...
En termes très simples: J'ai une classe qui se compose principalement de membres publics statiques, donc je peux regrouper des fonctions similaires qui doivent encore être appelées à partir d'autres classes / fonctions. Quoi qu'il en soit, j'ai défini deux variables char statiques non signées dans...
C'est essentiellement la question, y a-t-il une «bonne» façon de mettre en œuvre operator<<? En lisant ceci, je peux voir que quelque chose comme: friend bool operator<<(obj const& lhs, obj const& rhs); est préféré à quelque chose comme ostream& operator<<(obj...
Je sais que le compilateur initialisera parfois la mémoire avec certains modèles tels que 0xCDet 0xDD. Ce que je veux savoir, c'est quand et pourquoi cela se produit. Quand Est-ce spécifique au compilateur utilisé? Faire malloc/newet free/deletetravailler de la même manière à cet égard? Est-ce...
En tant que programmeur C ++ novice, il y a des constructions qui me semblent encore très obscures, l'une d'entre elles l'est const. Vous pouvez l'utiliser dans tant d'endroits et avec tant d'effets différents qu'il est presque impossible pour un débutant de sortir vivant. Est-ce qu'un gourou du C...
OK, info break répertorie les points d'arrêt, mais pas dans un format qui fonctionnerait bien avec leur réutilisation en utilisant la commande - comme dans cette question . GDB a-t-il une méthode pour les transférer dans un fichier acceptable pour une nouvelle saisie? Parfois, dans une session de...
Quoi de mieux, les listes de contiguïté ou la matrice de contiguïté, pour les problèmes de graphes en C ++? Quels sont les avantages et les inconvénients de
Existe-t-il un moyen d'ajouter ou de modifier le message lancé par assert? J'aimerais utiliser quelque chose comme assert(a == b, "A must be equal to B"); Ensuite, le compilateur ajoute la ligne , l' heure et ainsi de suite ... C'est
AUTANT QUE JE SACHE: C ++ fournit trois types différents de polymorphisme. Fonctions virtuelles Surcharge du nom de la fonction Surcharge de l'opérateur En plus des trois types de polymorphisme ci-dessus, il existe d'autres types de polymorphisme: Durée au moment de la compilation polymorphisme ad...
J'ai trouvé du code en utilisant std :: shared_ptr pour effectuer un nettoyage arbitraire à l'arrêt. Au début, je pensais que ce code ne pouvait pas fonctionner, mais j'ai ensuite essayé ce qui suit: #include <memory> #include <iostream> #include <vector> class test { public:...
Je sais ce que sont les foncteurs et quand les utiliser avec des stdalgorithmes, mais je n'ai pas compris ce que Stroustrup en dit dans la FAQ C ++ 11 . Quelqu'un peut-il expliquer ce std::bindque std::functionsont et sont, quand ils devraient être utilisés, et donner quelques exemples pour les...
Le code suivant entre dans une boucle infinie sur GCC: #include <iostream> using namespace std; int main(){ int i = 0x10000000; int c = 0; do{ c++; i += i; cout << i << endl; }while (i > 0); cout << c << endl; return 0; } Voici donc l'affaire: le dépassement...
Je comprends plus la surcharge des opérateurs, à l'exception des opérateurs d'accès des membres ->, .*, ->*etc. En particulier, qu'est-ce qui est passé à ces fonctions d'opérateur et que faut-il renvoyer? Comment la fonction d'opérateur (par exemple operator->(...)) sait-elle à quel membre...
J'avais l'impression que l'accès à un union membre autre que le dernier ensemble est UB, mais je n'arrive pas à trouver une référence solide (autre que des réponses affirmant que c'est UB mais sans aucun support de la norme). Alors, est-ce un comportement non
Selon la norme C ++ '03 2.3 / 1: Avant tout autre traitement, chaque occurrence de l'une des séquences suivantes de trois caractères («séquences de trigraphes») est remplacée par le caractère unique indiqué dans le tableau 1.