Voici 4 manières différentes de faire les choses:
#include <iostream>
#include <array>
#include <vector>
#include <set>
#include <unordered_set>
int main()
{
int position = 3;
// Moche, mélange C et C++
int interdites[5] = {1 ,2 ,3 ,4 ,5};
auto found = std::find(std::begin(interdites), std::end(interdites), position);
if (found != std::end(interdites))
std::cout << "Position interdite trouvée" << std::endl;
else
std::cout << "Position interdite NON trouvée" << std::endl;
// Mieux, si tu sais que ton tableau ne changera jamais de taille
std::array<int, 5> interdites2 = {1 ,2 ,3 ,4 ,5};
auto found2 = std::find(interdites2.begin(), interdites2.end(), position);
if (found2 != interdites2.end())
std::cout << "Position interdite trouvée" << std::endl;
else
std::cout << "Position interdite NON trouvée" << std::endl;
// Si ton tableau peut changer de taille
std::vector<int> interdites3 = {1 ,2 ,3 ,4 ,5};
auto found3 = std::find(interdites3.begin(), interdites3.end(), position);
if (found3 != interdites3.end())
std::cout << "Position interdite trouvée" << std::endl;
else
std::cout << "Position interdite NON trouvée" << std::endl;
// Si tu veux savoir si un élément n'est pas dans une série, un set est plus adapté
// (un ordre de grandeur plus rapide, de l'ordre de 0(log(n)) au lieu de 0(n) pour un tableau).
std::set<int> interdites4 = {1 ,2 ,3 ,4 ,5};
if (interdites4.find(position) != interdites4.end())
std::cout << "Position interdite trouvée" << std::endl;
else
std::cout << "Position interdite NON trouvée" << std::endl;
// La version la plus rapide, mais plus "gourmande" en mémoire
// (ordre de grandeur de l'ordre de 0(1)).
std::unordered_set<int> interdites5 = {1 ,2 ,3 ,4 ,5};
if (interdites5.find(position) != interdites5.end())
std::cout << "Position interdite trouvée" << std::endl;
else
std::cout << "Position interdite NON trouvée" << std::endl;
return 0;
}
A noter que ce que tu sembles vouloir faire, ne nécessite normalement pas de chercher si un élément est présent dans un ensemble. Si tu as une grille représentant une carte, alors il suffit de regarder au coordonnées si un obstacle est présent. Je réponds techniquement à ta question, mais je doute que tu partes dans la bonne direction.
Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature