• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

std::max() 앞에 왜 std::를 붙이는건가요?

20.07.26 16:27 작성 조회수 553

0

#include <algorithm>만으로도 max사용이 가능한데 왜 std::를 붙이셨는지 이유를 모르겠습니다.저는 std::없이 출력해도 값이 나오는데 이해가 안가네요 max라는 함수는 algorithm에서 이미 정의되있는거 아닌가요? std::안에도 max가 있다는건 무슨 말인가요?

#include 
#include 
using namespace std;

int main()
{
	cout << max(1+3,3) << endl;
}

답변 4

·

답변을 작성해보세요.

1

Gogolevel님의 프로필

Gogolevel

질문자

2020.07.27

친절한 답변 감사합니다. 좋은 하루 되세요

1

Hello Yeo님의 프로필

Hello Yeo

2020.07.27

선언은 서로 다른 영역에서 하고 있지만 같은 namespace라고 보는 것이 맞습니다.
max도 역시 using namespace std;을 넣어주면 붙여도 안붙여도 됩니다.

1

Hello Yeo님의 프로필

Hello Yeo

2020.07.27

using namespace std; 를 입력하셨기 때문에 cout, endl 을 std:: 입력없이 사용가능하다 라는 것은 이해하시고 계신가요? 이 경우 붙여도 되고 안붙여도 됩니다.
algorithm 안에도 _STD_BEGIN이 있어서 std라는 namespace가 존재하는데 max는 그 안에 선언되어 있습니다.

0

Gogolevel님의 프로필

Gogolevel

질문자

2020.07.27

네네 using namespace std를 붙여서 std::입력없이 사용가능한것은 알고있습니다. 

그럼 cout,endl의 std와 max의 std는 다른것인가요?  cout,endl은 using namespace std로 std::를 생략해서 쓸수 있는건데 max는 붙인걸 보면 std라는 이름만 같은거라고 이해하면 될까요?