Глиф Учебники

Что такое bits/stdc++.h

Справочник · C++ · 1 минута чтения

C++
#include <bits/stdc++.h>
using namespace std;

int main() {
    vector<int> v = {3, 1, 2};
    sort(v.begin(), v.end());
    cout << v[0] << " " << setprecision(3) << sqrt(2.0) << "\n";
    return 0;
}
Вывод
1 1.41

bits/stdc++.h — служебный файл стандартной библиотеки компилятора GCC (g++), который подключает всю стандартную библиотеку сразу: iostream, vector, algorithm, string, map, cmath, iomanip и остальное. Поэтому на олимпиадах его любят: одна строка вместо десятка #include, и не нужно вспоминать, где лежит sqrt, а где setprecision.

Где он есть, а где нет

Это не часть стандарта C++, поэтому другие компиляторы не обязаны его иметь.

Чем заменить

Подключите нужные заголовки сами. Чаще всего нужны:

ЗаголовокЧто в нём
<iostream>cin, cout
<string>string, getline, stoi, to_string
<vector>vector
<algorithm>sort, reverse, max_element, count, unique
<cmath>sqrt, pow, abs, fabs
<iomanip>setprecision, fixed
<map>, <set>map, set
<numeric>accumulate

Стоит ли писать bits/stdc++.h

Если проверяющая система олимпиады собирает решения компилятором Visual Studio (обычно это видно в списке компиляторов по названию вроде MSVC или Visual C++), решение с bits/stdc++.h получит ошибку компиляции. Выберите в списке g++ или перечислите заголовки.