ошибки компилятора mingw - PullRequest
       32

ошибки компилятора mingw

0 голосов
/ 20 октября 2011

Первая попытка компиляции некоторого кода без использования Visual Studio. Установил mingw и установил переменную пути среды. Затем попытался скомпилировать этот код:

#include <iostream>
#include <vector>

int main() {
typedef std::vector<int> Container;
typedef std::vector<int>size_type size;
typedef std::vector<int>iterator iter;

Container container; 

for (size i = 0; i != 1000000; ++i) {
container.push_back(i);
}

for (iter i = container.begin(); i != container.end(); ++i) {
std::cout << *i << " " << std::endl;
}

system("PAUSE");
return 0;
}

Открыв командную оболочку, перейдя в каталог с одним исходным файлом и набрав:

g++ main.cpp

Но я получаю много сообщений об ошибках следующим образом:

main.cpp: In function 'int main()':
main.cpp:6:35: error: expected initializer before 'size'
main.cpp:7:34: error: expected initializer before 'iter'
main.cpp:11:6: error: 'size' was not declared in this scope
main.cpp:11:11: error: expected ';' before 'i'
main.cpp:11:18: error: 'i' was not declared in this scope
main.cpp:15:6: error: 'iter' was not declared in this scope
main.cpp:15:11: error: expected ';' before 'i'
main.cpp:15:34: error: 'i' was not declared in this scope
main.cpp:19:15: error: 'system' was not declared in this scope

Я что-то упускаю до боли? Благодаря.

Ответы [ 3 ]

3 голосов
/ 20 октября 2011
typedef std::vector<int>size_type size;
typedef std::vector<int>iterator iter;

Преврати его в:

typedef std::vector<int>::size_type size;
typedef std::vector<int>::iterator iter;
1 голос
/ 20 октября 2011

Вам не хватает оператора :: между векторным определением и size_type (и итератором после него).

0 голосов
/ 20 октября 2011

typedef std::vector<int>::size_type должно быть typedef std::vector<int>::size_type size; и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...