C ++编译错误:'pair'没有命名类型

时间:2016-10-16 17:50:42

标签: c++ g++ ubuntu-16.04

我正在尝试用g ++编译器编译非常简单的c ++程序。

//main.cpp 

#include <stdio.h>

using namespace std;

typedef pair<int,int> pii;

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

但我收到编译错误:'pair'没有命名类型

编译行:g ++ main.cpp -o main.out 操作系统: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;
}

你知道吗,为什么会这样?

1 个答案:

答案 0 :(得分:5)

我的错,答案很简单:)

1)使用pair时,我应该包含<utility>

2)<iostream>某处包含<utility>,这就是为什么在添加程序后成功编译:)