본문 바로가기

전체 보기224

Modern C++ : type aliases (typedef and using) (98, 11) C++ Type Aliases (typedef and using) 개요타입 별칭(Type Alias)은 C++에서 기존 타입에 대한 대체 이름을 정의하는 방법입니다. 이를 통해 코드의 가독성을 높이고 복잡한 타입 선언을 단순화할 수 있습니다. C++ 버전별 주요 키워드 도입 시기typedef: C++98/03부터 사용 가능 (C 언어에서 상속)using (type alias): C++11부터 도입Alias templates: C++11부터 도입 내용 설명1. typedef (C 스타일)C 언어에서 물려받은 전통적인 타입 별칭 방식입니다.typedef std::vector ByteVector1; 2. using (C++11 스타일)C++11에서 도입된 더 직관적인 문법입니다.using ByteVector2.. 2025. 8. 26.
Modern C++ : std::map (98, 11, 17, 20) std::map 개요std::map은 C++ 표준 라이브러리의 연관 컨테이너로, 키-값 쌍을 저장하고 관리합니다. 이진 탐색 트리(BST) 기반으로 구현되어 있으며, 키를 기준으로 자동으로 정렬됩니다. 각 키는 유일해야 하며, 삽입/삭제/검색 연산이 O(log n)의 시간 복잡도를 가집니다. C++ 버전별 주요 키워드 도입 시기C++98: 기본 std::map 도입C++11: emplace, cbegin(), cend(), 범위 기반 for 루프 지원C++17: extract, insert_or_assign, try_emplace, merge 메서드 추가C++20: contains 메서드 추가 (C++20 이전에는 find와 end() 비교로 대체) 내용 설명std::map은 다음과 같은 주요 특징을 가.. 2025. 8. 25.
Modern C++ : std::pair, std::tuple (98, 11, 17) std::pair와 std::tuple 개요std::pair와 std::tuple은 C++ 표준 라이브러리에서 제공하는 유틸리티 클래스로, 여러 값을 하나의 단위로 묶어서 다룰 수 있게 해줍니다. 주로 함수에서 여러 값을 반환하거나, 여러 값을 한 번에 전달해야 할 때 유용하게 사용됩니다. C++ 버전별 주요 키워드 도입 시기std::pair: C++98/03부터 도입std::tuple: C++11에서 도입구조화된 바인딩(Structured Binding): C++17에서 도입 내용 설명std::pair두 개의 서로 다른 타입의 값을 하나의 단위로 저장할 수 있는 클래스 템플릿first와 second라는 두 개의 공개 멤버 변수를 가짐비교 연산자(==, !=, , , >, >=)가 오버로딩되어 있음 st.. 2025. 8. 24.
시대별 가치 평가자의 변화, 하늘, 은행, AI --> 가치를 결정하는 경천 사상.사람의 마음이 현실과 심리에 흔들리지 않고 순정한 상태를 유지하면서 명상의 깊은 상태에 도달할 수 있으면 옛 사람이 말한 하늘에 이를 수 있다. 지금의 말로 하자면 다차원 세계에 진입하는 것이다. 꿈과 같은 이야기이며 꿈과 같은 세상이다. 그 세상에 이를 수 있는 사람은 현실 세상에서 마음이 충분히 단련된 사람임을 검증 받은 것이고 관리가 될 자격을 얻는다. 그러나 이러한 것은 알기도 어렵고 알아도 어렵다.그래서 쉽게 가려고 찾은 방법이 마약류의 약물 효과이고 수련으로 단련된 마음이 아니라 현실의 몸을 마비시켜 그 곳에 도달하려는 것이다. 당연히 그런 사람들이 세상을 리드하면 현실은 대혼란에 빠지게 된다. 소위 말하는 말세다. 그렇게 경천 사상과 마약을 통한 탈 경천 사.. 2025. 8. 23.
쿠팡 알바 : 야탑1캠프 세척2 세척2 (14:30 ~ 23:30) 다녀왔습니다.땀이 비오듯 흐르니 물과 식염 포도당 잘 섭취하세요. ;;;세척은 세척기를 중심으로 일을 하는데 경험자 분들이 잘 알려주어 빠르게 적응 할 수 있었습니다. 과정은,프레쉬백 RT하차 - 세척기 뒤로 RT정렬 - 프레쉬백 세척기 투입 - 프레쉬백 조립 - 바코드 인식 - 빠레트에 프레쉬백 탑쌓기 - 랩핑 - 상차 준비 - 프레쉬백 상차 첫 날은 탑 쌓기와 랩핑!요령과 근력 그리고 지구력까지 필요한 작업입니다.특히 6단으로 쌓아 전체를 팽팽하게 랩핑하면 기분이 좋았습니다.랩핑도 일정한 근력과 요령이 합쳐져서 근지구력이 필요했는데 빙글빙글 돌면서 작업하여초반에 숨을 헐떡이며 머리가 빙글빙글 돌아 고생했습니다. ㅋ 1시간에 10분씩 휴식하는데 마치 마라톤 하다가 숨.. 2025. 8. 23.
Modern C++ : std::span (20) std::span 개요std::span은 연속된 메모리 영역을 참조하는 가볍고 안전한 래퍼 클래스입니다. C++20에서 도입되었으며, 배열이나 컨테이너의 요소들에 대한 뷰를 제공합니다. 포인터와 크기 쌍을 추상화하여 더 안전하고 표현력 있는 코드를 작성할 수 있게 해줍니다. C++ 버전별 주요 키워드 도입 시기C++20: std::span 도입 내용 설명std::span의 주요 특징:가벼운 참조 타입: std::span은 데이터를 소유하지 않고, 기존 데이터에 대한 뷰만 제공합니다.연속 메모리 컨테이너와 호환: std::vector, std::array, C-style 배열 등과 함께 사용할 수 있습니다.런타임 크기 정보: 배열의 크기를 런타임에 알 수 있습니다.범위 기반 for 루프 지원: 표준 컨테이.. 2025. 8. 23.
Modern C++ : std::vector, emplace_back vs push_back (98, 11, 17) C++ vector의 emplace_back vs push_back 개요std::vector에서 emplace_back과 push_back은 모두 컨테이너의 끝에 요소를 추가하는 멤버 함수입니다. 이 두 함수는 비슷해 보이지만 내부 동작 방식에서 중요한 차이점이 있습니다. emplace_back은 C++11에서 도입된 기능으로, 불필요한 복사나 이동 연산을 피하고 직접 객체를 생성할 수 있게 해줍니다. C++ 버전별 주요 키워드 도입 시기C++98/03: push_back()만 사용 가능C++11: emplace_back() 도입, 완벽한 전달(perfect forwarding) 지원C++17: emplace_back()이 참조를 반환하도록 변경 내용 설명push_back의 동작 방식전달된 인자로 임시 .. 2025. 8. 22.
Modern C++ : std::vector (98, 11, 14, 17, 20) C++ std::vector 컨테이너 개요std::vector는 C++ 표준 라이브러리에서 제공하는 동적 배열 컨테이너로, 연속된 메모리 공간에 요소를 저장합니다. 자동으로 메모리를 관리하고 크기를 동적으로 조정할 수 있어 가장 널리 사용되는 컨테이너 중 하나입니다. 임의 접근이 가능하고, 끝에서의 삽입/삭제가 효율적입니다. C++ 버전별 주요 키워드 도입 시기C++98/03: 기본 std::vector 기능 도입C++11: 이동 생성자/대입 연산자, emplace_back(), shrink_to_fit()C++14: 일반화된 람다 캡처와 함께 사용 개선C++17: 구조적 바인딩과 함께 사용 개선, emplace_back()이 참조 반환C++20: std::span과의 호환성, std::ranges 지원.. 2025. 8. 21.
Modern C++ : template, std::span (20) C++ 템플릿과 std::span을 활용한 컨테이너 순회 개요C++ 템플릿은 다양한 데이터 타입에 대해 동작하는 일반화된 코드를 작성할 수 있게 해주는 강력한 기능입니다. std::span은 C++20에서 도입된 뷰(view) 타입으로, 연속된 메모리 영역을 안전하고 편리하게 다룰 수 있게 해줍니다. 이 두 기능을 조합하면 다양한 컨테이너 타입을 일관된 방식으로 처리할 수 있는 유연한 코드를 작성할 수 있습니다. C++ 버전별 주요 키워드 도입 시기C++98/03: 기본 템플릿 지원 시작C++11: auto, 범위 기반 for 루프, std::array 도입C++14: 일반화된 람다 캡처, 변수 템플릿C++17: 클래스 템플릿 인수 추론(CTAD), std::string_viewC++20: std::sp.. 2025. 8. 20.