본문 바로가기

개발일기28

C++ 네임스페이스 사용 장점과 단점 (using namespace std) C++에 추가된 네임스페이스(namespace) 기능은 일부 자연스럽게 사용하는 부분도 있고 잘 활용되지 않는 부분도 있습니다. 제일 많이 사용하는 것이 "using namespace std" 일 것입니다. STL을 사용하거나 cout 출력을 위해서 많은 프로그래머들이 사용하고 있습니다. 하지만 C++ 네임스페이스 사용에는 장점과 단점이 있습니다. 이에 대해 자세히 알아보겠습니다. 네임스페이스란 무엇인가? "네임스페이스"라는 이름에서 알 수 있듯이 C++ 언어에서 각 이름들을 포함하는 공간의 개념입니다. 유사한 식별자(함수, 클래스, 상수 선언 등)를 함께 그룹화하는 논리적인 방법입니다. 기존에 C언어에서 모듈화 된 라이브러리를 하나로 묶을 때, 동일 이름에서 오는 심볼 충돌을 해결할 수 있는 방법으로 .. 2021. 11. 6.
std::vector 와 std::array 중 어떤 것을 사용할지의 선택 기준 vector와 array 컨테이너 클래스는 비슷하면서 다릅니다. 그래서 어떤 경우에 어떤 것을 사용할지 고민하는 경우가 있습니다. 하지만 둘 간에 차이가 명확하기 때문에 아래와 같은 선택 기준을 가지면 앞으로는 명확히 선택하실 수 있습니다. std::vector의 특징 std::vector는 가변 사이즈를 지원합니다. 이를 위해서는 크기가 동적으로 변경 가능하기 때문에, 구성 메모리 공간과 관계없이 동적으로 유지되는 버퍼가 할당되어야 합니다. 실제로 이는 버퍼링 된 콘텐츠에 대한 동적 메모리(힙) 할당이 필요함을 의미합니다. 만약 처리할 항목 수가 제한 가능한 크기의 컨테이너를 사용할 경우는, std::vector의 경우 필요한 것보다 고비용 메모리 할당을 사용합니다. std::array의 특징 생성에 .. 2021. 11. 6.
std::vector<T>::const_iterator 사용방법 설명 const_iterator는 컨테이너 내의 값에 대한 "포인터와 같은" 핸들을 제공합니다. 일반 iterator와 다른 점은 const 형태로 변경 없이 참조만 하는 경우 사용합니다. 여기서 예제로 설명드릴 컨테이너 클래스는 동적 배열인 std::vector입니다. 한글로는 "이터레이터", "콘스트 이터레이터"라고 부릅니다. const_iterator의 동작 방식 vector 인스턴스는 const_iterator를 요청 시 내부 데이터에 바인딩된 const 반복자를 생성합니다. 그 후에는 컨테이너의 인덱스 위치인 것처럼 작동합니다. 오직 컨테이너가 임의 액세스를 지원하는 경우만 지원되며, array 및 vector do, list 및 map 은 지원하지 않습니다. 참조하는 위치를 변경하기 위해서는 인덱스.. 2021. 11. 6.
2021년 C++은 여전히 배워야 하는 언어인가? 정답은 예! 여전히 C++는 TIOBE 지수에 따르면 세계에서 4번째로 인기 있는 언어입니다. 고성능 소프트웨어가 필요한 다양한 분야에서 사용됩니다. 예를 들어 Adobe 제품, Unreal Engine, Chrome 및 Firefox와 같은 브라우저는 C++로 빌드됩니다. 많은 응용 프로그램이 처리 속도에서 여전히 병목 현상이 발생하고 그 문제가 해결되지 않기 때문에 C++는 여전히 인기가 있습니다. 아직 확고한 대안이 없어서 빠른 소프트웨어를 위한 최선의 선택 중 하나입니다. [목차] 1. C++ 이 여전히 효과적인 분야 2. C++의 장점과 단점 C++ 이 여전히 효과적인 분야 C++은 거의 40년 동안 사용되었으며, 이는 대부분의 소프트웨어 문제가 이미 오픈 소스 라이브러리 및 프레임워크에 의해 해결되었음을 .. 2021. 9. 6.