Articles of langage

Pourquoi les langues ne génèrent-elles pas d’erreurs sur le dépassement d’entier par défaut?

Dans plusieurs langages de programmation modernes (y compris C ++, Java et C #), le langage autorise le débordement d’entier à l’exécution sans soulever aucune condition d’erreur. Par exemple, considérons cette méthode (artificielle) C #, qui ne tient pas compte de la possibilité de débordement / débordement. (Par souci de concision, la méthode ne gère […]

Pourquoi n’y a-t-il pas de méthodes swap () générées par le compilateur dans C ++ 0x?

Les compilateurs C ++ génèrent automatiquement des constructeurs de copie et des opérateurs d’affectation de copie. Pourquoi ne pas swap aussi? Actuellement, la méthode préférée pour implémenter l’opérateur d’atsortingbution de copie est l’idiome de copie et d’échange: T& operator=(const T& other) { T copy(other); swap(copy); return *this; } (en ignorant le formulaire compatible avec la […]

Pourquoi les modèles C ++ utilisent-ils la syntaxe entre crochets?

La question principale concerne les décisions de conception de la norme C ++ qui ont introduit les modèles vers 1990. Pourquoi les concepteurs ont-ils utilisé (crochets angulars) au lieu de, par exemple, () (parenthèses rondes)? Cela aurait sauvé beaucoup de programmeurs de l’erreur liée au décalage de bit std::vector<std::vector> // does not work until C++11 […]

Début du TDD – Défis? Solutions? Recommandations?

OK, je sais qu’il y a déjà eu des questions sur le démarrage de TDD . Cependant, je pense que je pense que le consensus général est de le faire . Cependant, il me semble que les problèmes suivants se posent: Lorsque vous travaillez avec des collections, testerez-vous toujours les insertions / suppressions / insertions […]

Quelle est la différence entre une «fermeture» et un «bloc»?

J’ai constaté que beaucoup de gens utilisent les mots « fermer» et « bloquer» de manière interchangeable. La plupart de ces personnes ne peuvent pas expliquer de quoi elles parlent. Certains programmeurs Java (même ceux de consultants très coûteux) parlent de classes internes anonymes comme “blocs” et “fermetures” – mais je sais que ce n’est […]

Comment trouver deux points les plus éloignés?

C’est une question qui m’a été posée lors d’un entretien d’embauche il y a quelque temps. Et je n’arrive toujours pas à trouver une réponse raisonnable. La question est: vous recevez un ensemble de points (x, y). Trouvez 2 points les plus éloignés. Distant les uns des autres. Par exemple, pour les points: (0,0), (1,1), […]

Comment arrondir les flottants aux entiers tout en préservant leur sum?

Disons que j’ai un tableau de nombres à virgule flottante, dans un ordre sortingé (disons croissant), dont la sum est connue sous la forme d’un entier N Je veux “arrondir” ces nombres à des nombres entiers tout en laissant leur sum inchangée. En d’autres termes, je recherche un algorithme qui convertit le tableau de nombres […]

Pourquoi le problème du sac à dos est-il un pseudo-polynôme?

Je sais que Knapsack est NP-complet alors qu’il peut être résolu par DP. Ils disent que la solution DP est pseudo-polynomial , car elle est exponentielle dans la “longueur de l’entrée” (c’est-à-dire le nombre de bits requirejs pour encoder l’entrée). Malheureusement je ne l’ai pas compris. Quelqu’un peut pseudo-polynomial il m’expliquer lentement ce pseudo-polynomial ?

Pourquoi les noms de membres C # ne peuvent-ils pas être les mêmes que le nom de type englobant?

En C #, le code suivant ne comstack pas: class Foo { public ssortingng Foo; } La question est: pourquoi? Plus exactement, je comprends que cela ne comstack pas parce que (je cite): les noms de membres ne peuvent pas être les mêmes que leur type OK bien. Je comprends cela, je ne le ferai […]

Pourquoi l’ajout de null à une chaîne est-il légal?

L’article MSDN sur les bases de la chaîne montre ceci: ssortingng str = “hello”; ssortingng nullStr = null; ssortingng emptyStr = “”; ssortingng tempStr = str + nullStr; // tempStr = “hello” bool b = (emptyStr == nullStr);// b = false; ssortingng newStr = emptyStr + nullStr; // creates a new empty ssortingng int len […]