我在使用reverse函数时,没有用#include<algorithm>,为什么编译海口容易通过,程序正常运行??求指教

我在使用reverse函数时,没有用#include,为什么编译海口容易通过,程序正常运行??求指教

#include "stdafx.h"
#include<iostream>
//#include<cmath>
#include<vector>
#include<string>

using namespace std;
int flag=1;
int main()
{
    int num;
    cin>>num;
    if(num<0)
        cout<<1<<" ";
    else
        cout<<0<<" ";
    num = abs(num);
    vector<int> s;
    for(int i=0; num !=1; ++i)
    {
        s.push_back(num%2);
        num = num/2;
    }
    s.push_back(1);
    reverse(s.begin(), s.end());
    for(vector<int>::iterator it=s.begin(); it!=s.end(); ++it)
        cout<<*it<<" "; 
}


图片说明

gcc和vc++的stl库实现不同,某个算法,如果已经被包含了,就不需要再包含。这是很正常的。就程序员来说,多写一下也没有错。