使用swap()而不包含它的库

Using swap() without #including its library?

本文关键字:包含它 swap 使用      更新时间:2023-10-16

我有一个简单的程序,其中我按升序或降序排列int数组的元素,并使用swap()函数来移动元素。我编译了这个程序,没有任何错误,它运行得很好。后来我才注意到,在我编译之前,我忘记了#include库,swap()在(<algorithm>,或C++11<utility>)中定义。

为什么它仍然有效?我的程序的开头是这样的:

#include <iostream>
#include <cstdlib>
using namespace std;

我试着取出<iostream>,只是为了看看会发生什么,它可以预见地提出了一堆'cout/cin/endl' was not declared in this scope错误,但我很惊讶地看到它也给出了一些'swap' was not declared in this scope错误。这是否意味着swap()<iostream>中定义?我觉得不应该是这样,对吧?

无论如何,这可能是一个很长的问题,一个简单的答案,但我很好奇。我还在学习CC++,所以我不知道很多东西,我无法通过"全能"的谷歌机器找到这个特殊谜团的答案,所以我在这里。

提前感谢!

一般来说,依赖于包含其他头文件的头文件。

总是包含并且包含您需要的头文件。

例如,如果你想使用std::swap(),谷歌它,你会看到如果需要<algorithm>在c++98和<utility>在c++11,所以你应该包括文件,以确保你的代码编译。

相关文章: