분류 전체보기692 뇌를 자극하는 C++ STL : 5장. STL 소개 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 가겹게 포스팅 하겠습니다. 1) 5장. STL 소개 STL의 간략한 소개와 기본 구성요소에 대해 살펴보았다. STL의 구성 요소 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 - 컨테이너(Container): 객체를 저장하는 객체로 컬렉션 혹은 자료구조라고도 합니다. - 반복자(Iterator): 포인터와 비슷한 개념으로 컨테이너의 원소를 가리키고, 가리키는 원소에 접근하여 다음 원소를 가리키게 하는 기능 - 알고리즘(Algorithm): 정렬, 삭제, 검색, 연산 등을 해결하는 일반화된 방법을 제공하는 함수 템플릿. - 함수객체(Funtion Object): 함수처럼 동작하는 객체로 operator.. CS/C++ 2022. 1. 18. 뇌를 자극하는 C++ STL : 4장. 템플릿 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 가겹게 포스팅 하겠습니다. 1) 4장. 템플릿 이번시간은 기초 C++문법 복습의 마지막 쳅터이다. 이후 5장부터 이책의 본격적인 주제인 STL에 관하여 다룬다. For_each() 함수 구현해보기 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 다음 코드는 For_each()를 template함수로 만들어 사용하는 예시이다. 원소의 type을 클라이언트가 직접 결정하여 사용할수가 있다. #include #include using namespace std; template void For_each(Iter begin, Iter end, Func pf) { while (begin != end) { pf(*.. CS/C++ 2022. 1. 18. 뇌를 자극하는 C++ STL : 3장. 함수 객체 내돈내고 내가 공부한 것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼 겸 가볍게 포스팅하겠습니다. 1) 3장. 함수 객체 함수 객체는 함수처럼 동작하는 객체이다. 이는 () 연산자를 오버로딩한 객체이어야 한다. 또한 함수 객체를 Funtor라고 부르기도 한다. 함수를 두고 왜 함수객체를 사용하는 것 일까? 함수 객체는 근본이 객체이다. 멤버 변수와 멤버 함수를 가질 수 있고, 함수 객체의 signature가 같더라도 객체 타입이 다르다면 다른 타입으로 인식한다. 또한 인라인 될 수 있기에 일반 함수보다 빠르다. 다음 코드를 통해 알아보자. #include using namespace std; class Adder { int m_total; public: explicit Adder(int n = 0) .. CS/C++ 2022. 1. 18. 뇌를 자극하는 C++ STL : 2장. 함수 포인터 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 가겹게 포스팅 하겠습니다. 1) 2장. 함수 포인터 함수 포인터는 함수의 주소를 저장하는 변수이다. 함수의 이름이 주소인것 또한 C언어 공부할때 배운것이 생각난다. 정적 함수 호출 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 - 정적함수 : 전역함수, namsspace내의 전역함수, static 멤버함수 다음 코드는 정적함수를 호출하는 방식이다. #include using namespace std; void Print(int n) { cout HTML 삽입 미리보기할 수 없는 소스 - 클라이언트가 서버를 호출하면 call, 서버가 클라이언트를 호출하면 callback - 서버가 여러 클라이언트에 의.. CS/C++ 2022. 1. 18. 뇌를 자극하는 C++ STL : 1장. 연산자 오버로딩 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 가겹게 포스팅 하겠습니다. 1) 1장. 연산자 오버로딩 이번 단원에서는 연산자 오버로딩에 대하여 컴파일러가 어떻게 해석하는지를 주로 배웠다. 이전에 따배씨쁠쁠에서 한번 싹 배운내용긴 하지만 복습겸 정독하였고, 또한 함수 호출 연산자 오버로딩을 집중하여 공부하였다. 함수 호출 연산자 오버로딩( () 연산자 ) " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 함수 호출 연산자는 객체를 함수처럼 동작하게 하는 연산자 입니다. 객체를 함수처럼 동작하게 하기 위해서는 호출연산자 "()" 를 정의해줘야 한다. 따배씨쁠쁠에서 배웠던 functor(함수 객체) 를 말한다. #include using namespace.. CS/C++ 2022. 1. 18. [서평] C 기초 플러스 6판 저의 돈으로 직접사서 직접 완독해본후 써보는 후기입니다. 따라서 장점은 장점대로 칭찬할것이며, 단점은 단점대로 언급할 것 입니다. C 기초 플러스 저자 : Stephen Prata 출판 : 성안당 발매 : 2017.12.11. 2020/6/1 ~ 2020/9/3 (전부다 읽은것은 아니고 부분부분 필요한 단원들만 읽어나갔습니다.) 1) 책의 구성 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 ◆ 표지구성 진짜 보통사람이였다면 선뜻 읽으려하지 않을 두께의 책이다. 페이지수만 거의 1100page이며 첫페이지부터 하나하나 모두 읽으려면 시간이 엄청걸릴거같은 책이다. 나또한 필요한 부분에 해당하는 단원씩만 읽었다. 부분만 읽기에는 앞뒤 내용이 끊기는것 같아서 모르는 부분이 나오.. Life/Book Record 2022. 1. 18. Vim 에디터 사용법 (vi 에디터) 내가 공부한후 후에도 참고할겸 작성하는 글 입니다. 참고로 저는 WSL2 환경에서 vi를 사용하는 중 입니다. 1) ViI? VIM? VIM이란 vi_Improved 의 약어로써 VI 에디터에다 편리하면서 막강한 기능들을 추가한 에디터이다. 대부부분의 리눅스 베포판들은 기본에디터로 VIM이 설치되어있으며, VI 명령으로 alias되어있다. 즉 VI를 실행하면 자동적으로 VIM이 실행된다. 그럼 이러한 에디터는 왜 사용하는것 인가? 기존의 GUI환경의 VScode등이 더 편하지 않은가? 1) 키보드만으로 모든것을 해결할수 있다. 처음이 어려워 그렇지 적응하고 사용하다보면 그 효율성이 아주 뛰어난 에디터이며 모든 리눅스에 설치되어있기에 매우 간편하다. 또 마우스가 전혀 필요없기에 노트북하나 만드로도 모든것을.. CS/System Programming (2021-2) 2022. 1. 18. C++ 공부 섹션20 : 홍정모의 따배씨쁠쁠 <완강> 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1) 섹션20 드디어 마지막 시간이다. 이번시간에는 C++ 내용 위주라기보다는 알고 있어야할 상식에 대하여 알려주셨다. 정리는 간단이 할 예정이다. 20-1 비쥬얼 스튜디오로 프로파일링 하기 디버그 모드에서 사용하는 진단모드에서 CPU사용량과 메모리 사용량에 대하여 배웠고, 릴리즈 모드에서 프로파일링 하면서 가장 연산량을 많이 먹는 코드를 찾아가는 법을 배웠다. 8:2의 법칙 : 연산량의 80%를 전체 코드의 20%가 차지하는 것 이 일반적이다. 가장 느린부분을 하나 찾아서 거기에 80%의 노력을 들여서 맞추면 전체적으로 빨리지는 경향이 있다. 20-2 깃, 깃헙 시작하기 Gi.. CS/C++ 2022. 1. 18. C++ 공부 섹션19 Modern C++ : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1) 섹션19 이번 단원에서는 modern C++에서의 필수 요소들에 대하여 배웠다. 19-1 람다 함수와 std::funtion std::bind, for_each 이번에는 현대적 프로그래밍의 유연성을 높혀주고, 부담을 줄여주는 람다함수 그리고 std::funtion에 대하여 알아보자. 람다함수는 '익명함수' 라고도 불린다. C++뿐만 아니라 다른 언어들에서도 사용하고 있다. 우선 구조를 알아보자. #include #include #include using namespace std; int main(void) { // lambda-introducer [] // lambda-pa.. CS/C++ 2022. 1. 17. C++ 공부 섹션18 입출력 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1) 섹션18 이번시간에는 입출력에 관하여 집중적으로 배웠다. 버퍼같은 개념이 간단한 것 같으면서도, 처음에 만나면 좀 당황스럽다. 18-1 istream으로 입력받기 이번에는 istream에 대하여 조금더 자세히 배웠다. 기본적으로 stream은 buffer에 임시적으로 저장이 되었다가 일부분씩 꺼내오는 방식이다. 우선 다음의 오류가 나는 간단한 코드를 확인해 보자. buf의 사이즈가 10인대 입력문자가 10개가 넘어가 runtime에러가 발생하고 있다. 항상 이런점을 고려하면서 불편하게 사용해야 하는 것 일까? 아니다! iomanip (input/output manipula.. CS/C++ 2022. 1. 17. C++ 공부 섹션17 String : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1) 섹션17 이번시간에는 string에 대하여 집중적으로 배웠다. 17-1 std::string과 std::wstring 문자열 사용을 편리하게 하기위한 string class가 준비되어있다. 기존의 C-style의 방식은 번거롭다. #include #include #include #include using namespace std; int main() { // c-style string example //{ //char* strHello = new char[7]; //strcpy_s(strHello, sizeof(char) * 7, "hello"); //std::cout CS/C++ 2022. 1. 17. C++ 공부 섹션16 STL : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1) 섹션16 이번시간에는 STL에 대하여 배우는 시간이였다. 간략히 맛보기 시간이였던 것 같다. STL은 책을 따로 사서 공부할 예정이다. 16-1 표준 템플릿 라이브러리, 컨테이너 소개 항상 모든것을 직접 구현하여 사용한는 것 이 아니라, 자주 사용하는 것들을 표준으로 만들어논 라이브러리를 STL(Standard Template Libraries)라고 한다. STL은 4가지 위주로 구현이 되있다. 1) Algorithms, 2) Containers, 3) Functions, 4) Literators 이중 컨테이너 에 대하여 간단하게 배웠다. - Sequence_contain.. CS/C++ 2022. 1. 17. 이전 1 ··· 49 50 51 52 53 54 55 ··· 58 다음