목록언어/STL (5)
No Rules Rules
STL map을 value 기준으로 sort 자료구조 map은 key값으로 정렬되어집니다. map의 원형을 보시면 다음과 같습니다. 정렬과 관련되어 주의깊게 보셔야 할점은 class _Pr = less 입니다. 기본적으로 map 라는 자료형 선언시, Predicate의 default 인자는 less가 됩니다. 그래서 오름차순으로 자동 정렬이 되는 것이구요. 만약 내림차순의 map을 사용하고 싶다면 greater로 설정하면 된다는 것이죠. 물론 오름차순도 내림차순도 아닌 특수한 정렬을 갖는 map을 생성하고 싶다면 직접 정의할 수도 있습니다. 하지만 원형에서 보듯이 _Kty 즉, key 로만 정렬되어질 수 있습니다. 따라서 key가 아닌 value로 정렬을 하고 싶다면 자료형을 선언하는 시점에는 할 수 없..
chrono는 사전적인 의미 그대로 시간을 나타내는 영단어입니다. https://namu.wiki/w/Chrono 기존 C언어에서는 이미 시간과 관련된 기능을 제공하고 있습니다. (time 함수) 하지만 STL의 chrono는 time 함수보다 더 다양한 기능을 제공하고, 가장 중요한 것은 측정 가능한 시간의 단위가 nanoseconds라는 점입니다. 주로 사용하는 기능에 대해서 열거해보겠습니다. 이 기능(function)이 수행되는 총 시간은? 어떤 함수를 구현했다고 했을때, 과연 이 함수를 통과하는데 총 얼마만큼의 시간이 걸리는지 측정해야 할때가 있습니다. #include #include void SomethingToDo() { ... } int main() { // std::chrono::syste..
STL pair를 먼저 확인해주세요! STL pair (feat. make_pair) 우리가 사용하는 일반적인 자료형은 char, short, int, float, double 등과 같습니다. 이는 하나의 정보를 하나의 공간에 담는 것을 의미하는데요. 그럼 두개의 정보를 하나의 공간에 담고 싶은 경우는 kim519620.tistory.com 이전 pair에서의 아쉬웠던 점! 바로 두개의 변수만을 취할 수 있다! 입니다. 그럼 3개 이상의 변수를 취할때는 어떻게 해야 할까요? STL tuple을 사용한다! 구글링을 하다보면 tuple로 사용할 수 있는 자료형의 최대 개수는 10개라고 되어 있습니다. 하지만 이것은 이전 C++ TR1에서의 경우고 C++ TR2가 정식 릴리즈된 C++17부터는 사실상 개수 제..
우리가 사용하는 일반적인 자료형은 char, short, int, float, double 등과 같습니다. 이는 하나의 정보를 하나의 공간에 담는 것을 의미하는데요. 그럼 두개의 정보를 하나의 공간에 담고 싶은 경우는 없을까요? 구조체를 사용합니다! 일반적으로 두개의 정보를 하나의 공간에 담고 싶을때 구조체를 사용합니다. 아래와 같이 말이죠. struct SomethingValue { int something1; double something2; } int main() { SomethingValue something_value; something_value.something1 = 5; something_value.something2 = 1.2; ... } 하지만 여기서 다음과 같이 불편함을 느낍니다. 나..
C++ 개발자가 필수로 알아야 하는 것중에 하나는 STL 입니다. 사실 OOP 개념에 대해서, Code의 Design 방법에 대해서 등도 중요하지만 시니어 레벨의 개발자 (보통 대리급정도 되겠습니다.) 에게 가장 필요한 것은 코딩 방법이라고 생각합니다. 왜냐면 일반적으로 SW 구조를 설계하는 경험보다는 선배가 만들어놓은 구조 속에서 코딩하는 일이 더 많기 때문이죠. 아무튼 STL이란 Standard Template Library 의 약어입니다. C++에서 제공하는 표준 라이브러리인데, 쉽게 말해서 우리가 사용하는 라이브러리 파일(*.lib, *.dll 과 같이)처럼 C++이라는 언어가 사용하는 라이브러리 중 하나라고 보시면 됩니다. 자료구조 대부분의 선형 구조와 비선형 구조를 제공하며, 여러가지 알고..