Хобрук: Ваш путь к мастерству в программировании

Ошибка компиляции С++: «пара» не указывает тип

Я пытаюсь скомпилировать очень простую программу на С++ с помощью компилятора g++.

//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 ОС: 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;
}

Знаете, почему это происходит?

16.10.2016

  • Вы знаете, для чего нужны заголовки? 16.10.2016
  • Потому что 1. вам нужно включить правильный заголовочный файл и 2. вам нужно полностью забудьте, что using namespace std; существует. 16.10.2016
  • Любой стандартный заголовок C++ может включать любой другой заголовок, поэтому это может сделать случайный заголовок. Лучше всего включить заголовок <utility>, где должен быть объявлен std::pair. . 16.10.2016

Ответы:


1

Моя вина, ответ прост :)

1) Для использования pair я должен включить <utility>.

2) <iostream> где-то включает <utility>, поэтому после его добавления программа успешно компилируется :)

16.10.2016
Новые материалы

мои январские чтения по программированию
Эрик Эллиот Программирование приложения JavaScript Эл Свейгарт «Автоматизируйте скучные вещи с помощью Python» Прогрессивное веб-приложение Google..

Создание ассоциаций секвелизации с помощью инструмента командной строки Sequelize
Sequelize - популярный, простой в использовании инструмент объектно-реляционного сопоставления (ORM) JavaScript, который работает с базами данных SQL. Довольно просто начать новый проект с..

Искусственный интеллект в юридической отрасли - пример прогнозирования судебных решений с помощью глубокого обучения
На протяжении всей истории люди полагались на суды, присяжных, королей и королев в отправлении правосудия. Сегодня способность судов обеспечивать справедливое и быстрое правосудие для своих..

Введение в машинное обучение для обнаружения аномалий (часть 1)
Тщательно созданный, тщательно спроектированный ресурс для специалистов по данным. Часть 1 Главы 03 из Руководства по машинному обучению для обнаружения аномалий Внимание! Прежде чем вы..

Начало работы с Pulumi в Digital Ocean
Цифровой океан (ДО) — отличная альтернатива многим другим поставщикам облачных услуг. DO предоставляет простой и понятный пользовательский интерфейс, упрощающий управление инфраструктурой и..

#Day68 из #100days_of_coding
Вчера был мой 68-й день кодинга. я решил один вопрос Проблема: Разбить двоичную строку на подстроки с равным количеством нулей и единиц Дана двоичная строка str длины N . Задача состоит..

Воспроизведение теперь возможно с помощью React
Как я реализовал Reparenting с помощью нескольких строк кода Я разрабатываю приложение, похожее на Trello . На главной странице мне нужны несколько вертикальных списков и несколько..