ProgrammingLang 119

[C++ 개발자되기] 18. std::vector 기본 사용법

1. Vector 란? - 동적으로 확장/축소가 가능한 동적 배열(dynamic array)로 구현되어 있습니다. 2. Vector 메모리 구현 방식 - 일반적인 배열처럼 개체들을 연속적인 메모리 공간에 저장 합니다. 3. Vector 접근 방식 - iterator 를 통한 접근이 가능 합니다. - position index(operator [])로도 접근이 가능 합니다. 4. Vector Heder #include 5. Vector method 1) 생성자 method std::vector v1; empty vector 생성 std::vector v2(4, 100); size 4에 초기값 100으로 vector 생성 std::vector v3(v2.begin(), v2.end()); iterator를 ..

ProgrammingLang/c++ 2020.03.27

[C++ 개발자되기] 17. std::cout 출력 포맷 변경 iomanip

>>[C++ 관련 모든 글 보기] 1. std::cout 출력 포맷 변경 방법 c++ 에서는 iomanip에서 제공하는 함수를 사용하여 포맷을 변경 할 수 있습니니다. iomanip는 Input Output Manipmanipulation이라르 뜻 입니다. 2. 필요 헤더 #include 3. 사용법 - std::cout 에 포맷을 먼저 세팅 합니다. 그 후 표현할 정보를 입력 합니다. - 다음 코드에서 std::hex 로 표현 할 포맷을 세팅 합니다. std::cout

ProgrammingLang/c++ 2020.03.18

[C++ 개발자되기] 16. smart pointer

개요 c++에서의 smart-pointer가 무엇인지 살펴본다. Smart pointer란? - 포인터처럼 동작하는 클래스 템플릿으로, 사용이 끝난 메모리를 자동으로 해제해 줍니다. 사용 방식 생성 - smart_pointer에 자료 형을 동적 할당 소멸 - 클래스 이기때문에 사용이 끝나면 소멸자가 알아서 메모리 해제하고 사라짐 Ex) - smart_pointer sp = new int(5); Smart pointer 좋은점 개발하다 보면 메모리 할당 후 까먹는 경우가 매우 많다 그러나 smart pointer를 사용하면 이런 걱정을 안해도된다. , 다만 해제된 smart pointer 사용하는 헤프닝이 발생할 수는 있다. Smart pointer 종류 및 핵심 개념 1. unique_ptr - uniq..

ProgrammingLang/c++ 2020.02.24

[C++ 개발자되기] 14. millisecond시간 구하기

>>[C++ 관련 모든 글 보기] 1. 목표 millisecond단위 까지 시간 구하기, 사용하는 함수는 C함수 입니다. 2. 필요 헤더 1) #include - localtime_r() 사용을 위해 필요 - ftime() 에서 필요 - strftime() 에서 필요 2) #include - struct timeb 에서 필요로함 3. 필요 함수 1) void ftime(struct *timeb); - millisecond 까지 시간을 구하는 함수 2) struct tm *localtime_r(const time_t *timep, struct tm *result); - 지역 시간을 구하는 함수 4. 구조체 정보 1) struct tm #include // C++ 에서는 struct tm { int tm_s..

ProgrammingLang/c++ 2020.02.02

[C++ 개발자되기] 12. text file read 및 write

>>[C++ 관련 모든 글 보기] 1. 목표 text파일을 c++ style로 Read 및 Write하기 2. 필요 헤더 1) Read / Write - #include 2. 사용 하는 class 1) Read 할 떄 - std::ifstream("파일명" , "옵션") 2) Write 할 때 - std::ofstream("파일명" , "옵션") * 옵션 번호 옵션 설명 1 없음 기본 모드, 텍스트 모드 2 std::ios::banary 2진모드로 파일열기 * 참조 : [C++ 개발자되기] 8. binary file write 및 read 3 std::ios::app 파일의 끝에 추가한다 4 std::ios::ate 처음엔 파일의 끝에 추가되지만 그다음부턴 현재 위치에 추가된다 5 std::ios::in..

ProgrammingLang/c++ 2019.12.05

[C++ 개발자되기] 11. multi thread를 위한 lock 사용법

>>[C++ 관련 모든 글 보기] 1. lock 이란? multi Thread간의 동기화를 맞추기 위해서 사용하는 개념입니다. 이를 구현해 놓은 것이 c/c++에서는 mutex와 lock_guid 입니다. 2. lock은 꼭 필요 한가? multi thread 프로그램에서는 lock이 없다면 thead간 공유 데이터의 값이 엉망이 됩니다. 3. lock의 종류 1) mutex - c에서 부터 사용하던 lock 입니다. 2) lock_guard - mutex를 보다 안전 적으로 사용할 수 있게 제공되는 class 입니다. 4. lock 사용법 1) 기본 lock 사용자가 원하는 위치에서 lock을 걸고, 해제할 수 있습니다. int count(int n) { mutex.lock(); if( n < 10 )..

ProgrammingLang/c++ 2019.12.04

[C++ 개발자되기] 10. map 사용법

>>[C++ 관련 모든 글 보기] 1. map 이란? Key, Value 쌍인 데이터를 균형 binary tree로 관리하는 자료구조입니다. * 2진 트리 종류는 Red-Black Tree을 사용 2. map은 언제 쓰는가? 1) 입력하는 자료를 정렬해야 한다. 2) 많은 자료를 저장하고, 검색이 빨라야 한다 3) 빈번하게 삽입, 삭제하지 않는다. - 삽입, 삭제 시 자동 정렬이 발생하여 속도가 느려집니다. 3. map의 핵심 기능 1) find (1) map은 key가 있다면 vector처럼 Random access가 가능합니다. (2) iterator를 사용하여 순차적으로 검색이 가능합니다. 2) Insert (1) map은 자료를 삽입 시 내부에서 자동으로 Key 기준으로 오름차순 정렬(기본 정렬)..

ProgrammingLang/c++ 2019.12.02

[C++ 개발자되기] 9. type casting (cast operator)

>>[C++ 관련 모든 글 보기] 1. Type Casting이란? 변수의 type을 강제로 다른 type으로 변경하는 것을 말합니다. 2. 왜 필요 한가? C 나 C++ 변수의 type을 변경 해서 처리하는 경우가 비번 하게 발생합니다. 예를 들어 외부 library사용시 인자로 넘길 변수가 char인데 외부 library가 unsigned char를 사용할 경우 개발자는 char type을 unsigned char로 변경해서 넘겨주어야 Compile Error가 이 발생하지 않습니다 #include int PrintHello(unsigned char *str) { std::cout

ProgrammingLang/c++ 2019.11.15