2016-10-16 2 views
3

g ++コンパイラで非常に単純なC++プログラムをコンパイルしようとしています。C++コンパイルエラー: 'pair'は型名を指定していません

//main.cpp 

#include <stdio.h> 

using namespace std; 

typedef pair<int,int> pii; 

int main(int argc, char *argv[]) 
{ 
    printf("Hi"); 
    return 0; 
} 

しかし、私はコンパイルエラーを取得しています: 'ペア' タイプに

コンパイル行に名前を付けていません:G ++ main.cppに-o main.out OS:Ubuntuの16.04 LTS G ++:gccのバージョンを5.4.0 20160609(Ubuntuの5.4.0-6ubuntu1〜16.04.2)

私はちょうど#include<iostrem>プログラムを追加した場合はコンパイルし、正常に実行された:)

#include <stdio.h> 
#include<iostream> 

using namespace std; 

typedef pair<int,int> pii; 

int main(int argc, char *argv[]) 
{ 
    printf("Hi"); 
    return 0; 
} 

あなたは知っています、なぜこれが起こりますか?

+0

あなたは、のためにある何のヘッダー知っていますか? – tkausl

+0

1.適切なヘッダーファイルを含める必要があります。2.完全に['namespace std;'が使用されていることを忘れる必要があります](http://stackoverflow.com/questions/1452721/why-is-using -namespace-std-considered-bad-practice)を指定します。 –

+1

すべてのC++標準ヘッダーには他のヘッダーを含めることができるため、ランダムヘッダーが使用できます。最も良い方法は、['std :: pair'](http://en.cppreference.com/w/cpp/utility/pair)が宣言されるはずの' 'ヘッダを含めることです。 –

答えて

5

私のせいで、答えは簡単です:)

1)pairを使用するために、私は<utility>を含める必要があります。

2)<iostream>はどこかにそれを追加した後、プログラムが正常にコンパイル理由です、<utility>を含んでいる:)

+0

hello fellow codeforcer –

関連する問題