Справка с ошибкой: C++ ISO запрещает объявление 'вектора' без типа

Первая ссылка Google:

http://www.tracemodeler.com/articles/aging-bugs-and-setting-dpi-with-java-image-io/

И похоже, что это имеет информацию, в которой Вы нуждаетесь.

11
задан Scott 12 October 2009 в 00:11
поделиться

2 ответа

Vector resides in the std namespace. You have to do one of the following:

Prepend the type with the namespace:

std::vector<std::vector<char *> > chars;

Tell the compiler you are using vector from the std namespace

using std::vector;
vector<vector<char *> > chars;

Or, tell the compiler you are using the std namespace, which will bring in everything (not recommended, see comments)

using namespace std;
31
ответ дан 3 December 2019 в 02:30
поделиться

Каждый символ, объявленный в стандартной библиотеке C ++, является частью пространства имен std. Чтобы использовать эти объявления, вы должны ссылаться на него по его полному имени. а именно std ::.
Как ответил MichaelM, вы должны использовать std :: vector вместо vector. Однако вы можете использовать следующие «объявления using»:
1. с использованием std :: vector;
2. с использованием пространства имен std; // используя пространство имен ...; в основном не рекомендуется, так как это вызывает массовый импорт символов в глобальное пространство имен

В любом случае в большинстве случаев вам следует избегать использования объявления в файлах заголовков, поскольку оно загрязняет глобальное пространство имен для каждого пользователя вашего заголовка.

] удачи

1
ответ дан 3 December 2019 в 02:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: