C ++ STL:包括所有库?

时间:2014-11-07 13:50:59

标签: c++

如何在我的c ++代码中包含stl的所有库,而不是单独包含它们。例如 -

#include <queue>
#include <containers> 

包含所有这些内容的简单方法。请帮忙 ?

5 个答案:

答案 0 :(得分:5)

你不能但是你可以制作一个列表并将它们放在带有标题保护的ofc的标题中。

// C++ Full Standard Header Include
#include <cstdlib>
#include <csignal>
#include <csetjmp>
#include <cstdarg>
#include <typeinfo>
#include <typeindex>
#include <type_traits>
#include <bitset>
#include <functional>
#include <utility>
#include <ctime>
#include <chrono>
#include <cstddef>
#include <initializer_list>
#include <tuple>
#include <new>
#include <memory>
#include <scoped_allocator>
#include <climits>
#include <cfloat>
#include <cstdint>
#include <cinttypes>
#include <limits>
#include <exception>
#include <stdexcept>
#include <cassert>
#include <system_error>
#include <cerrno>
#include <cctype>
#include <cwctype>
#include <cstring>
#include <cwstring>
#include <cwchar>
#include <cuchar>
#include <string>
#include <array>
#include <vector>
#include <deque>
#include <list>
#include <forward_list>
#include <set>
#include <map>
#include <unordered_set>
#include <unordered_map>
#include <stack>
#include <queue>
#include <algorithm>
#include <iterator>
#include <cmath>
#include <complex>
#include <valarray>
#include <random>
#include <numeric>
#include <ratio>
#include <cfenv>
#include <iosfwd>
#include <ios>
#include <istream>
#include <ostream>
#include <iostream>
#include <fstream>
#include <sstream>
#include <strstream>
#include <iomanip>
#include <streambuf>
#include <cstdio>
#include <locale>
#include <clocale>
#include <codecvt>
#include <regex>
#include <atomic>
#include <thread>
#include <mutex>
#include <future>
#include <condition_variable>
#include <ciso646>
#include <ccomplex>
#include <ctgmath>
#include <cstdalign>
#include <cstdbool>

那应该是完整列表:)(C ++ 11也必须是活动的) 你可能想要删除那些被弃用的(不应该很多/你会得到一个警告)和那些你没有的,因为它们是特殊的/旧的/新的

答案 1 :(得分:1)

libstdc ++ documents一个名为stdc++.h的头文件,其中包含大多数(并非所有)基于语言方言的标准头文件(例如,libstdc ++或libc ++似乎都没有实现<cuchar> )。该页面提供了有关如何从此创建预编译头的说明。

据我所知,libc ++没有stdc++.h

在Visual Studio C ++中,规范的预编译头是stdafx.h。如果您愿意,可以将stdc++.h的内容复制/粘贴。您必须修改检查语言方言的#ifdef指令。在MSVC中,__cplusplus似乎定义为像199711这样无用的东西。 _MSC_VER可能用于确定C ++ 11功能的状态。

要在GCC上使用#include <bits/stdc++.h>

答案 2 :(得分:0)

最好只包含您需要的头文件,因为当预处理器浏览源文件时,它会将所有头文件替换为实际内容。因此,请始终尽量减少程序中标题的使用...

答案 3 :(得分:0)

在大多数情况下,没有办法也没有必要这样做。如果您有超过1个c ++文件,您可以创建头文件,其中包含您需要的所有内容,并在所有c ++文件中包含此单个标头 - 此方法也有助于使用预编译头文件。

答案 4 :(得分:0)

#include <bits/stdc++.h>

此库包含大多数STL标头(尤其是容器)