본문 바로가기
반응형

분류 전체보기201

C++11 주요 업데이트 : std::regex, Type Traits, Uniform Initialization 🔖 INDEX 정규 표현식 라이브러리: std::regex C++11에서 도입된 std::regex 라이브러리는 정규 표현식의 파싱, 검색, 그리고 문자열 조작을 위한 강력한 도구들을 제공합니다. 아래에 이 라이브러리의 주요 내용을 요약하여 설명하겠습니다. 주요 컴포넌트 std::regex: 정규 표현식 객체입니다. 이 객체는 정규 표현식 패턴을 나타냅니다. std::smatch: 문자열 검색의 결과로 반환되는 match 객체입니다. std::regex_iterator: 주어진 문자열에서 정규 표현식과 일치하는 부분을 반복적으로 검색하는 반복자입니다. std::regex_token_iterator: 반복자와 유사하나, 정규 표현식의 서브매치나 토큰을 반복적으로 검색합니다. 주요 함수 std::regex_.. 2023. 10. 3.
C++11 주요 업데이트 : std::forward_list, std::unordered_map, std::unordered_set 🔖 INDEX std::forward_list C++11에서 도입된 std::forward_list는 STL(Standard Template Library)의 일부로 제공되는 단방향 연결 리스트 구현입니다. 이 컨테이너는 공간 효율성을 위해 이전 요소로의 역방향 반복자나 뒤로 이동하는 연산을 제공하지 않는 점이 특징입니다. 기본적인 특징 단방향 연결 리스트: 각 요소는 다음 요소를 가리키는 링크만 갖고 있습니다. 효율적인 메모리 사용: 이중 연결 리스트인 std::list와 달리, std::forward_list는 앞쪽 링크만을 유지하기 때문에 메모리 사용이 더 효율적입니다. 빠른 삽입 및 삭제: 연결 리스트 특성상, 알고 있는 위치에서의 삽입 및 삭제 연산이 상수 시간에 이루어집니다. 주요 멤버 함수 .. 2023. 10. 3.
C++11 주요 업데이트 : override, final, std::thread, std::array 🔖 INDEX override와 final C++11에서는 클래스 상속과 관련하여 두 가지 새로운 키워드, override와 final을 도입했습니다. 이 두 키워드는 코드의 명시성과 안정성을 높이기 위해 클래스 상속과 오버라이드 시 사용됩니다. 이러한 키워드를 통해 프로그래머의 의도를 더욱 명확하게 표현할 수 있게 되었습니다. override 개념: override 키워드는 파생 클래스에서 기본 클래스의 가상 함수를 오버라이드하고 있다는 것을 명시적으로 나타내기 위해 사용됩니다. 장점: 이 키워드를 사용하면, 실수로 함수를 오버라이드하지 않은 경우(예: 함수의 서명이 일치하지 않을 때) 컴파일러가 경고 혹은 오류를 발생시켜 줍니다. class Base { public: virtual void func(.. 2023. 9. 30.
C++11 주요 업데이트 : Initializer Lists, decltype, Template Aliases 🔖 INDEX 초기화 목록 (Initializer Lists) C++11에서 도입된 초기화 목록(Initializer Lists)은 중괄호 {}를 사용하여 여러 값으로 객체를 초기화할 수 있게 해주는 문법입니다. 이를 통해 배열, 컨테이너, 사용자 정의 타입 등의 객체 초기화가 간결하고 명료하게 이루어집니다. 기본 사용 방법 배열 int arr[] = {1, 2, 3, 4, 5}; STL 컨테이너 std::vector vec = {1, 2, 3, 4, 5}; 사용자 정의 타입 class MyClass { private: int x, y; public: MyClass(int a, int b) : x(a), y(b) {} }; MyClass obj = {3, 4}; // MyClass의 생성자를 사용하여 초.. 2023. 9. 30.
C++11 주요 업데이트 : auto, nullptr, 람다 식 🔖 INDEX 자동 형식 추론 (auto) auto는 C++11에서 도입된 키워드로, 변수의 타입을 컴파일러가 자동으로 추론하게 하는 기능입니다. 즉, 개발자는 변수의 정확한 타입을 명시하지 않고 auto 키워드를 사용하여 컴파일러에게 타입 추론을 맡길 수 있습니다. auto 사용 예 auto i = 42; // int auto d = 3.14; // double auto s = "hello"; // const char* auto v = std::vector{1, 2, 3}; // std::vector 이처럼 auto는 변수의 초기화식을 기반으로 해당 변수의 타입을 추론합니다. auto의 장점 가독성 향상: 복잡한 타입명을 반복적으로 작성할 필요가 없어 코드가 더 간결하고 가독성이 향상됩니다. 타입 안정.. 2023. 9. 30.
C++의 메모리 관리 : 동적 할당, 스마트 포인터 🔖 INDEX C++의 메모리 관리 C++은 개발자에게 메모리 관리에 대한 풍부한 컨트롤을 제공한다. 이러한 자유도는 강력함을 가져다주지만, 잘못 관리될 경우 메모리 누수와 같은 문제점을 야기할 수 있다. 이 글에서는 C++의 동적 할당과 해제, 메모리 누수의 원인 및 해결법, 그리고 스마트 포인터에 대해 살펴볼 것이다. 동적 할당과 해제 C++에서는 메모리의 동적 할당 및 해제를 수행하기 위한 여러 방법이 제공된다. 그 중 가장 대표적인 방법은 new와 delete를 사용하는 것과, C에서부터 사용되어 온 malloc과 free 함수를 사용하는 것이다. new와 delete C++에서는 new와 delete 연산자를 사용해 동적으로 메모리를 할당하고 해제할 수 있다. new로 메모리를 할당하면, 해당 .. 2023. 9. 29.
반응형