본문 바로가기

프로그래밍206

[C++] 파일 & 문자열 스트림 References C++ Standard Library 2nd Contents File Access (파일 스트림) Stream Classes for String (문자열 스트림) [C++] 스트림(stream) 클래스 (1) [C++] 스트림(stream) 클래스 (2) File Access 파일에 액세스할 때 스트림을 사용할 수 있습니다. 이번에는 파일 액세스에 대한 기능들에 대해서 살펴보도록 하겠습니다. File Stream Classes C++ 표준 라이브러리에서는 아래의 표준 특수화(standard specializations)가 정의되어 있습니다. ifstream과 wifstream 으로 특수화된 basic_ifstream 클래스 템플릿은 파일 읽기 액세스를 제공합니다 (input file .. 2022. 12. 16.
[C++] 스트림(stream) 클래스 (2) References C++ Standard Library 2nd Contents Standard Input/Output Functions, sentry 객체 Manipulators (조작자) Formatting (포맷) [C++] 스트림(stream) 클래스 (1) [C++] 스트림(stream) 클래스 (1) References C++ Standard Library 2nd Contents Background of I/O Streams Fundamental Stream Classes and Objects Standard Stream Operators > State of Streams I/O 형식을 위한 클래스는 C++ 표준 라이브러리에서 가장 중요한 부분이며, I/O junstar92.tistory.co.. 2022. 12. 15.
[C++] 스트림(stream) 클래스 (1) References C++ Standard Library 2nd Contents Background of I/O Streams Fundamental Stream Classes and Objects Standard Stream Operators > State of Streams I/O 형식을 위한 클래스는 C++ 표준 라이브러리에서 가장 중요한 부분이며, I/O가 없는 프로그램은 쓸모가 거의 없다고 봐도 됩니다. C++ 표준 라이브러리에서 제공하는 I/O 클래스는 파일이나 스크린, 키보드에 제한되지 않으며 임의의 데이터를 받고 임의의 '외부 표현장치(external representations)'에 액세스할 수 있도록 해주는 확장 가능한 프레임워크입니다. 이번 포스팅에서는 IOStream 라이브러리에서 중.. 2022. 12. 13.
[C++] 함수 객체 활용 References C++ Standard Library 2nd Contents Function Objects Predicates vs. Function Objects Predefined Function Objects and Binders Lambda [C++] Function Object (함수 객체) [C++] Lambda Expression (람다 표현식) (기존에 함수 객체와 람다에 대해 작성했던 포스팅(c++17,c++20 기준) 이번 포스팅에서 함수 객체(function object; functor)에 대해서 조금 더 자세히 알아보고, remove_if()와 for_each()에서 함수 객체를 어떻게 활용할 수 있는지도 살펴보겠습니다. 또한, 함수 객체와 관련된 바인더와 람다도 추가로 살펴보겠.. 2022. 12. 12.
[C++] Iterator Traits와 User-Defined Iterators References C++ Standard Library 2nd Contents Iterator Traits User-Defined Iterators Iterator Traits 반복자에는 위와 같이 다양한 카테고리가 있습니다. 이는 각각이 자신만의 특수한 기능이 있다는 것을 나타냅니다. 서로 다른 반복자 카테고리는 서로의 동작을 오버로딩할 수도 있고, 오버로딩될 수 있습니다. 이때, iterator tags와 iterator traits를 사용하여 이러한 오버로딩을 적용할 수 있습니다. 각 반복자 카테고리에서 C++ 표준 라이브러리는 iterator에 대한 "label"처럼 사용되는 iterator tag를 제공합니다. 실제 헤더 파일을 살펴보면 상속이 사용되었다는 것을 볼 수 있습니다. 따라서, fo.. 2022. 12. 11.
[C++] Clocks and Timers References C++ Standard Library 2nd Contents Chrono Library Durations Clocks and Timepoints Data and Time Functions by C and POSIX [C++] chrono 라이브러리 (Date, Time 유틸리티) [C++] chrono 라이브러리 (Date, Time 유틸리티) References Professional C++ https://en.cppreference.com/w/ Contents Compile-Time rational numbers (컴파일 시간 유리수, ratio) Duration Clock Time Point 이번 포스팅에서는 C++ 표준 라이브러리에서 시간 관련 기능인 chrono 라이 juns.. 2022. 12. 8.
[C++] Type Traits와 Type Utilities References C++ Standard Library 2nd cppreference (link) Contents Type Traits ( 2022. 12. 7.
[C++] Numeric Limits References C++ Standard Library 2nd cppreference (link) 숫자 타입(numeric types)는 일반적으로 플랫폼에 따라서 한계값이 다릅니다. C++ 표준 라이브러리에서는 이러한 한계값을 numeric_limits 라는 템플릿으로 제공합니다. 이렇게 제공되는 numeric limit은 일반적인 전처리 C 상수를 대체하고 보완하는데 사용될 수 있습니다. 물론, 정수 타입에 대해서는 와 를 통해, 부동소수점 타입에 대해서는 와 를 통해 기존에 사용되던 C 상수도 여전히 지원됩니다. 하지만, C++에서 제공하는 numeric limits를 사용하면 데이터 타입에 안전하다는 것과 프로그래머가 이러한 한계값을 처리하는 템플릿을 작성할 수 있다는 장점을 얻을 수 있습니다... 2022. 12. 6.
[C++] Pairs and Tuples References The C++ Standard Library 2nd (Ch 5.1) Contents std::pair std::tuple 아래 내용은 C++11 기준으로 작성된 내용입니다. C++98의 첫 번째 C++ 표준 라이브러리에서는 특정 클래스를 정의하지 않고 다른 타입의 value pairs를 처리하는 간단한 클래스가 제공되었습니다. 이 C++98 클래스는 표준 함수로부터 value pair를 리턴할 때나 컨테이너의 요소가 key/value pairs일 때 사용되었습니다. TR1에서는 요소의 수가 제한되었지만, 임의의 수의 요소를 가질 수 있도록 pair의 개념을 확장한 tuple 클래스를 도입했습니다. 여기서는 최대 10개의 다른 타입의 요소를 가질 수 있는 tuple이 구현되었습니다. C.. 2022. 12. 6.
[C++] C++11에서 추가된 기능 (2) References The C++ Standard Library Contents New Template Features Lambda Keyword decltype New Function Declaration Syntax Scoped Enumerations New Fundamental Data Types +) Old Languages Features [C++] C++11에서 추가된 기능 (1) [C++] C++11에서 추가된 기능 (1) References The C++ Standard Library Contents nullptr and std::nullptr_t auto Uniform Initialization Range-based Loop Move Semantics and Rvalue Reference.. 2022. 12. 4.