【发布时间】:2015-02-26 14:50:16
【问题描述】:
我认为需要包含一些头文件才能使用 gcc(4.9) 进行编译,
#include <algorithm> // for std::transform
#include <numeric> // for std::adjacent_difference
但是,我发现根本不需要包含它们,我仍然可以调用 比如下面的函数
std::adjacent_difference (V1.begin(), V1.end(), V2.begin());
std::transform(V2.begin(), V2.end(), V3.begin(), V4.begin(), std::divides<double>());
也许我误解了包含头文件的机制...有什么提示吗?
【问题讨论】:
-
那么您很幸运,您包含了一些 other 头文件,其中包含所需的头文件。
-
如果你使用它,包括它。
-
@JoachimPileborg 是正确的。你应该总是包含你需要的头文件。有时您包含的某些标头本身包含其他 STL 标头,这就是您看到此行为的原因。您已经包含的一些文件可能包括
<algorithm>和<numeric>;但这是一个实现细节。你不应该依赖它:) -
V1-V4实际上是什么?普通数组?