본문 바로가기
c++/c++

[c++] using namespace std

by ilp 2024. 2. 15.
반응형

'namespace'

'namespace''책장'과 비슷하다.

  • 프로그래밍에서는 많은 코드들이 서로 다른 '책장'에 저장된다.
  • 이렇게 다른 '책장'에 저장하게 된다면
  • 같은 이름을 가진 도구를 어느 '책장'에 속하는지에 따라 구별할 수 있다.

 

 

'std'

  • 'std'는 c++의 표준 라이브러리를 담고 있는 '책장'의 이름이다. 
  • 표준 라이브러리에는 프로그래밍을 할때 자주 사용하는 요소가 있다.
    (입출력, 문자열 처리, 데이터 구조 등 다양한 기본적인 기능)

대표적으로

'cout'이나 'cin'이 있다.

또한 이것을 출력할 떄는 'std::cout', 'std::cin' 으로 사용해야 한다.

 

 

 

'using namespace std;'

  • 'std' namespace에 속한 모든 도구들을 프로그램에서  사용할때
    'std::' 접두사 없이 사용할 수 있게 한다.
  • 코드의 가독성을 높이고, 코딩을 더욱 신속하게 할 수 있다.

'std::cout' 대신 'cout'만 써도 되고, 

'std::cin' 대신 'cin'만 써도 된다.

 

 

장단점

장점 단점
코드의 가독성 향상 다른 라이브러리의 요소와 이름 충돌의 위험
표준 라이브러리 요소를 빠르게 사용가능 코드의 명확성 감소
코딩 속도 향상 대규모 프로젝트에서 관리 어려움

 

장점 활용

  • 'using namespace std;' 를 사용해 c++의 기본적인 개념과 표준 라이브러리에 쉽게 익숙해질 수 있다.
  • 코드의 간결성을 중요시하고 이름 충돌의  가능성이 낮은 경우 사용한다.
    (소교모 프로젝트, 알고리즘 문제 해결)

단점 회피

  • 다양한 라이브러리를 사용하는 대규모 프로젝트인 경우, 
    구체적인 'std::'접두사를 붙여 각각 출처를 정확하게 하는 것이 좋다.

 

 

참고

나는 'using namespace std;'를 알고리즘 문제를 풀때 사용한다.

장단점을 잘 이해하고,상황에 맞게 적절히 활용해야한다.


반응형

'c++ > c++' 카테고리의 다른 글

[c++] sort  (1) 2025.03.02
[c++] 팩토리얼 계산하기  (0) 2024.04.28
[c++] 소수점 자릿수 조절하기  (0) 2024.02.21
[c++]  (0) 2024.02.18
[c++] #include <bits/stdc++.h>  (0) 2024.02.18