web-dev-qa-db-fra.com

Le vecteur n'est pas un modèle?

J'essaie actuellement de suivre un tutoriel sur la création d'un moteur de tuiles 2D simple pour les RPG descendants. Pour une raison que j'obtiens l'erreur Intellisense

vector is not a template

Le mot "vecteur" est souligné en rouge. Pourquoi ça ne marche pas? Pourquoi me dit-il que c'est un modèle et pourquoi cela signifie-t-il que le programme ne fonctionnera pas?

#ifndef _IMAGEMANAGER_H
#define _IMAGEMANAGER_H

#include <vector>
#include <SFML\Graphics.hpp>

class ImageManager
{
private:
    vector<sf::Texture> textureList;

public:
    ImageManager();
    ~ImageManager();

    void AddTexture(sf::Texture& texture);
    sf::Texture& GetTexture(int index);
};
#endif

Erreurs que j'obtiens (sans aucun doute certaines de ces erreurs proviennent de l'erreur de cette partie ci-dessus):

  • Erreur 1 erreur C2143: erreur de syntaxe: manquant ';' avant '<' c:\users\vipar\dropbox\computer science\programming\visual studio 2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-app

  • Erreur 2 Erreur C4430: spécificateur de type manquant - int supposé. Remarque: C++ ne prend pas en charge c-\ default-int par défaut: utilisateurs\vipar\dropbox\ordinateur
    science\programmation\visual studio
    2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-app

  • Erreur 3 Erreur C2238: jeton (s) inattendu (s) précédant ';' c:\users\vipar\dropbox\computer science\programmation\visual studio 2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-app

  • Erreur 4 erreur C2143: erreur de syntaxe: manquant ';' avant '<' c:\users\vipar\dropbox\computer science\programming\visual studio 2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-app

  • Erreur 5 Erreur C4430: spécificateur de type manquant - int supposé. Remarque: C++ ne prend pas en charge c-\ default-int par défaut: utilisateurs\vipar\dropbox\ordinateur
    science\programmation\visual studio
    2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-app

  • Erreur 6 Erreur C2238: jeton (s) inattendu (s) précédant ';' c:\users\vipar\dropbox\computer science\programmation\visual studio 2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-app

  • Erreur 7 erreur C2065: 'textureList': identifiant non déclaré c:\users\vipar\dropbox\computer science\programming\visual studio 2012\projects\sfml-app\sfml-app\imagemanager.cpp 22 1 sfml-app

  • Erreur 8 erreur C2143: erreur de syntaxe: manquant ';' avant '<' c:\users\vipar\dropbox\computer science\programming\visual studio 2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-app

  • Erreur 9 Erreur C4430: spécificateur de type manquant - int supposé. Remarque: C++ ne prend pas en charge c-\ default-int par défaut: utilisateurs\vipar\dropbox\ordinateur
    science\programmation\visual studio
    2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-app

  • Erreur 10 Erreur C2238: jeton (s) inattendu (s) précédant ';' c:\users\vipar\dropbox\computer science\programmation\visual studio 2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-app

  • 11 IntelliSense: le vecteur n'est pas un modèle c:\Users\Vipar\Dropbox\Computer Science\Programming\Visual
    Studio 2012\Projects\sfml-app\sfml-app\ImageManager.h 10 2 sfml-app

20
OmniOwl

vector provient de l'espace de noms std, vous devez donc utiliser std:: spécifier:

std::vector<sf::Texture> textureList;

Ou vous pouvez utiliser une instruction using:

using std::vector;

vector<sf::Texture> textureList;
42
0x499602D2

Comme je ne vois aucune instruction using dans votre exemple de code, je suis sûr que vous devez ajouter std:: à votre déclaration vector, comme ceci:

std::vector<sf::Texture> textureList;
7
Shafik Yaghmour