Подтвердить что ты не робот

Вектор не является шаблоном?

В настоящее время я пытаюсь следовать учебному пособию по созданию простого 2D-мозаичного движка для RPG сверху вниз. По какой-то причине, хотя я получаю ошибку intellisense

vector is not a template

Слово "вектор" подчеркнуто красным. Почему это не работает? Почему это говорит мне, что это шаблон, и почему означает, что программа не будет работать?

#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

Ошибки, которые я получаю (без сомнения, некоторые из них возникают из-за ошибки этой части выше):

  • Ошибка 1 ошибка C2143: синтаксическая ошибка: отсутствует ';' перед '<' c:\users\vipar\dropbox\информатика\программирование\визуальная студия 2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-app

  • Ошибка 2 ошибки C4430: отсутствует спецификатор типа - int. Примечание: С++ не поддерживает default-int c:\users\vipar\dropbox\computer
    наука\программирование\визуальная студия
    2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-app

  • Ошибка 3 ошибки C2238: неожиданный токен (ы), предшествующий ';' c:\users\vipar\dropbox\информатика\программирование\визуальная студия 2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-app

  • Ошибка 4 ошибка C2143: синтаксическая ошибка: отсутствует ';' перед '<' c:\users\vipar\dropbox\информатика\программирование\визуальная студия 2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-app

  • Ошибка 5 Ошибка C4430: отсутствует спецификатор типа - int. Примечание: С++ не поддерживает default-int c:\users\vipar\dropbox\computer
    наука\программирование\визуальная студия
    2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-app

  • Ошибка 6 ошибки C2238: неожиданный токен (ы), предшествующий ';' c:\users\vipar\dropbox\информатика\программирование\визуальная студия 2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-app

  • Ошибка 7 ошибки C2065: 'textureList': необъявленный идентификатор c:\users\vipar\dropbox\computer science\programming\visual studio 2012\projects\sfml-app\sfml-app\imagemanager.cpp 22 1 sfml-app

  • Ошибка 8 ошибка C2143: синтаксическая ошибка: отсутствует ';' перед '<' c:\users\vipar\dropbox\информатика\программирование\визуальная студия 2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-app

  • Ошибка 9 ошибки C4430: отсутствует спецификатор типа - int. Примечание: С++ не поддерживает default-int c:\users\vipar\dropbox\computer
    наука\программирование\визуальная студия
    2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-app

  • Ошибка 10 ошибка C2238: неожиданный токен (ы), предшествующий ';' c:\users\vipar\dropbox\информатика\программирование\визуальная студия 2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-app

  • 11 IntelliSense: вектор не является шаблоном c:\Users\Vipar\Dropbox\Computer Science\Programming\Visual
    Studio 2012\Projects\sfml-app\sfml-app\ImageManager.h 10 2 sfml-app

4b9b3361

Ответ 1

vector из пространства имен std, поэтому вы должны использовать std:: для указания:

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

Или вы можете использовать оператор using:

using std::vector;

vector<sf::Texture> textureList;

Ответ 2

Так как я не вижу каких-либо операторов using в вашем примере кода, я уверен, что вам нужно добавить std:: в ваше объявление vector, например:

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