Propre, efficace algorithme pour l'emballage des entiers en C++

/**
  * Returns a number between kLowerBound and kUpperBound
  * e.g.: Wrap(-1, 0, 4); //Returns 4
  * e.g.: Wrap(5, 0, 4); //Returns 0      
  */
int Wrap(int const kX, int const kLowerBound, int const kUpperBound)
{
    //Suggest an implementation?
}
  • Quelle est la fonction censé faire? Comment est-elle arrivée à 4 dans le premier et à 0 dans le second cas?
  • C'est un "wrap" la fonction. Tout nombre qui n'est pas entre les deux bornes, puis "emballages" de l'autre côté et commence à décrémenter/incrémentation de fonction sur le côté, c'est sur.
  • Programmation par troupeau. Ce qui marrant.
  • 🙂 Oui. J'ai un crufty solution dans mon code maintenant si je peux continuer à travailler, mais c'est le meilleur copain de vérification de je pense, pour les non-propriétaires de code. 🙂
  • Inspiration Possible dans le stackoverflow.com/questions/478721/...
  • Je suggère fortement à l'encontre de la mise en œuvre de l'emballage dans le logiciel. Beaucoup plus rapide solution serait à l'échelle de vos données à certains de gamme qui est facilement enroulé à l'aide natif point fixe de types de données ou à l'aide d'un masque de bits avec un point fixe de type de données.