J'écris des exemples de code à partir de «Comment penser comme un informaticien en C++», et celui-ci traite de la manipulation des objets et des jeux de cartes à jouer. Je suis face à cette situation:Comparer avec size_t, return int?
int Card::find(const std::vector<Card>& deck) const {
size_t deckSize = deck.size();
for (size_t i=0; i<deckSize; i++)
if (equals(*this, deck[i])) return i;
return -1;
}
Je ne pouvais pas utiliser « .length() » sur un vecteur en C++ dans Visual Studio 2010 comme dans le texte, et avait lieu d'utiliser .Size() qui retourne (Je crois) std :: size_type. J'ai pensé que je pourrais utiliser size_t et m'en sortir pour éviter les problèmes sur différentes architectures, comme je l'ai lu, mais je me demande si je retourne i
, mais c'est plus grand qu'un entier, vais-je planter le programme? Une fois que j'ai commencé à utiliser des vecteurs pour des choses plus grandes que des cartes, j'ai envisagé d'utiliser un entier non signé en raison d'un avertissement de discordance de compilateur, mais je pense que renvoyer un int non signé ou un int quelques problèmes: 1) int ne prendra pas un index vectoriel suffisamment grand. 2) renvoyer unsigned int ne me laissera pas revenir -1. 3) unsigned int n'est pas égal à size_t sur toutes les architectures (je fais aussi de la programmation microcontrôleur sur un ARM Cortex-M3). Que dois-je faire si j'ai un vecteur assez grand?
Vous devriez envisager d'obtenir un autre livre de C++. Il y a une liste de [bons livres d'introduction en C++] (http://stackoverflow.com/questions/388242/the-definitive-c++-book-guide-and-list). Je ne suis pas familier avec _Comment penser comme un informaticien en C++ _, mais son premier exemple a un 'void main()' et utilise ''. Cela n'a pas l'air prometteur. –