#cppcon16 tuple: What’s New and How it Works / Stephan T. Lavavej
발표자는 Stephan T. Lavavej. 줄이면 STL. 운명을 받아들여 MS에서 STL을 구현 중이다. tuple에 관한 건 다 훑어본다. C++11, C++14, C++17. 처음 보는 함수도 있었음.
발표자는 Stephan T. Lavavej. 줄이면 STL. 운명을 받아들여 MS에서 STL을 구현 중이다. tuple에 관한 건 다 훑어본다. C++11, C++14, C++17. 처음 보는 함수도 있었음.
STL에는 auto_ptr라는 스마트 포인터가 있지만 할당하면 소멸식 복사(destructive copy)로 자원에 대한 소유권을 넘겨주는 동작을 한다. STL 알고리즘은 값에 의한 복사가 기본 동작이라서 컨테이너에 못 넣는 스마트 포인터가 되겠다. 이게 이슈가 많이 돼서 이름도 ...
사용자 입력은 서식화된 입력(공백 문자 무시 등)이 필요하지만 파일 입출력에서는 서식화된(formatted) 입력이 필요 없는 경우가 대부분이다. 서식화된 입출력은 쌩 입출력보다 처리를 하는 게 많아서 속도가 느린 게 당연하다. 공백 문자 무시 옵션을 켜도 되지만 이런 서식화 입출...
두 값이 같은가를 판단하는 두 가지 방법이 존재한다. 첫 번째 방법은 두 값이 같은지를 바로 판단하는 것이고 두 번째 방법은 작지도 않고 크지도 않다는 것을 확인해서 두 값이 같은지를 판단한다. 이 첫 번째 방법은 operator== 로 판단하는데, A == B 이면 두 값이 같다...
transform(), copy() 알고리즘과 같이 연산을 하거나 단순 복사를 하는 알고리즘을 사용할 때, 결과물을 쓰기 위한 반복자(iterator)를 함수 인자로 받는다. operator = 로 값을 쓰기 때문에 결과물을 특정 컨테이너 뒤에 삽입하려면 귀찮은 과정을 거쳐야 한다...
O(logN)으로 수행되는 바이너리 검색(binary search)이다. 물론 바이너리 검색 알고리즘의 전제 조건인 정렬된 순서를 보장해야 하므로 원소들이 정렬된 컨테이너에서만 제대로 동작한다.
함수 어댑터(function adaptor)?!
Effective STL 항목 15에서 string이 여러 가지 방식으로 구현되어 있다는 걸 상기시키고 있다. 구현 방법까지 표준 문서에 정의하지 않았기 때문에 당연한 결과이기도 하다. VS 2005에 포함된 딩컴웨어 STL은 어떻게 구현되었나 궁금해서 찾아봤다.
STL 알고리즘 이름의 _if 접미사는 술어 함수(predicate)를 인자로 받는 것을 의미한다. 이 술어 함수를 알고리즘 안에서 호출해서 돌려받은 반환 값에 따라 동작을 수행할지 말지를 결정하게 된다. 예를 들면 count_if()는 술어 함수 호출결과가 true인 원소들의 개...
컨테이너 정렬이 필요할 때, sort를 사용하고 순서가 유지돼야 하면 stable_sort를 사용했다. partial_sort와 nth_element는 한 번도 사용해본 적이 없는데, 일부분만 정렬이 필요하거나 몇 번째 원소를 뽑을 때 유용하게 사용할 수 있을 것 같다. 예를 들면...
변태적인 복사 동작을 하는 스마트 포인터다. 꼭 필요한 경우가 아니라면 레퍼런스 카운팅을 하는 스마트 포인터를 사용하자.
for_each 알고리즘으로 대체 구현이 가능한 거라 한 번도 사용해보지 않은 알고리즘이다. Effective STL 37번 항목에서 accumulate알고리즘에 대한 언급이 나오는데, 으.. 읽고 보니 좋은 걸 안 쓰고 있었구나.
predicate 발음듣기 [미] [prédikət] 【문법】 술부, 술어 (cf. SUBJECT) 【컴퓨터】 술어 구글 사전
EASTL - Electronic Arts Standard Template Library은 거대 게임 개발사인 EA가 C++ 표준 라이브러리인 STL을 게임 개발에 맞게 수정한 라이브러리이다.
```c++ #include #include #include