Ответ 1
vector
из пространства имен std
, поэтому вы должны использовать std::
для указания:
std::vector<sf::Texture> textureList;
Или вы можете использовать оператор using
:
using std::vector;
vector<sf::Texture> textureList;
В настоящее время я пытаюсь следовать учебному пособию по созданию простого 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
vector
из пространства имен std
, поэтому вы должны использовать std::
для указания:
std::vector<sf::Texture> textureList;
Или вы можете использовать оператор using
:
using std::vector;
vector<sf::Texture> textureList;
Так как я не вижу каких-либо операторов using
в вашем примере кода, я уверен, что вам нужно добавить std::
в ваше объявление vector
, например:
std::vector<sf::Texture> textureList;