2011-10-20 29 views
0

Visual Studioを使用せずに一部のコードをコンパイルする最初の試み。 mingwをインストールし、環境変数を設定します。単一のソースファイルやタイピングのディレクトリに行って、CMDシェルを開くことで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
typedef std::vector<int>size_type size; 
typedef std::vector<int>iterator iter; 

電源を入れ、それは:あなたは(それの後とイテレータ)ベクトルの定義とsize_type間::オペレータが欠落している

+0

ああ、ありがとう。 main.cpp:function 'int main()': main.cpp:19:15:エラー: 'system'はこのスコープで宣言されていませんでした –

+0

'system()'はposix関数ですあなたは窓で開発しています。 'std :: cin'を使ってキーが押されるのを待つなど、プログラムを一時停止する別の方法が必要です。 – Griwes

+0

ありがとう...今コンパイル:)メモ帳C++で書いていますが、通常はVisual Studioが問題を指摘していたと思います。 –

0

typedef std::vector<int>::size_typeなどtypedef std::vector<int>::size_type size;でなければなりません。

1

typedef std::vector<int>::size_type size; 
typedef std::vector<int>::iterator iter;