공부/C++
-
memset 함수공부/C++ 2024. 1. 25. 11:43
- memset(시작 주소, 원하는 값, 바꿀 길이) : 특정 메모리를 원하는 값으로 초기화 할 때 사용 char 배열에서는 원하는 값으로 초기화 가능하고, int 배열에서는 0 과 -1 로 초기화하는 경우에만 사용가능하다. - memset에서의 메모리 초기화 예를 들어 int arr[100] 을 1 로 초기화 하는 경우에 사용자가 의도한 바는 1은 arr[index] : 00000000 00000000 00000000 00000001 //int는 4 바이트 memset 이 실제로 바꾸는 1은 00000001 00000001 00000001 00000001 //각 바이트를 1 로 변경 - memset(arr, 0, size), memset(arr, -1, size) // 0 : 00000000 00000..
-
[우선순위 큐] priority_queue 사용자 정의 함수공부/C++ 2023. 12. 27. 19:47
- 우선순위 큐에서 cmp 구조체에서 operator() 연산자 오버로딩을 통해 사용가능하다. * 반환 값이 true 이면, swap 한다. #include #include #include #include #include #include #include #include #include using namespace std; int N; typedef struct yx { int y; int x; } yx; struct cmp { bool operator()(yx a, yx b) { if (a.y == b.y) { return a.x > b.x; } else { return a.y > b.y; } } }; priority_queue q; int main() { ios_base::sync_with_stdio(..
-
[C++] 콘솔창 키입력 메뉴이동 ConsoleHandle공부/C++ 2023. 7. 19. 17:06
- 코드 #include #include #include //#include "KeyClass.h" enum KeyList { UP = 72, LEFT = 75, RIGHT = 77, DOWN = 80, }; #define MENU_LENGTH 5 using namespace std; void Init(); void SetConsoleCursorPosition(int x, int y); void InputKey(); COORD GetConsoleCursorPosition(); void PrintMainPage(); void MoveMenuCursorUP(); void MoveMenuCursorDOWN(); int main() { Init(); while (true) { InputKey(); } retur..
-
__restrict공부/C++ 2023. 7. 14. 13:01
C의 restrict 과 비슷하지만, C, C++에서 사용가능하다 void sum2(int n, int * __restrict a, int * __restrict b, int * c, int * d) { } 위 코드에서 __restrict으로 선언된 a, b는 같은 주소가 아님을 의미한다. 포인터를 역참조하여 연산을 수행 시에는 2개 이상의 포인터들이 같은 메모리 공간을 가리키는지 확인해야한다. 이를 확인하고 사용함으로써 데이터의 무결성을 확인한다. __restrict으로 선언하게 되면 해당 과정을 생략함으로써, 메모리 접근에 대한 성능향상을 얻을 수 있다. 하지만 코드의 안전성을 보장하기위해 MISRA C++ 등에서는 'restrict' 키워드를 사용을 금하기도 한다. https://bigpel66.o..
-
[C++] 클래스 생성공부/C++ 2022. 7. 13. 22:19
객체(object) : 물리적이나 추상적인 것에 대해 속성(attribute)과 메소드(method)로 모델링 한 것 속성은 객체의 상태를 나타내는 데이터이고, 메소드는 객체가 정해진 동작을 하는 함수이다. 메시지 : 객체들간의 상호작용에서 한 객체가 다른 객체로 필요한 작업이 이루어지도록 요구하는 것 메시지는 함수를 호출하는 것을 의미한다. https://soongjamm.tistory.com/133 객체지향에서 메세지와 메소드는 다르다. 객체지향에서 메세지와 메소드는 다르다. 객체지향에 입문해서 자료를 보다보면 메세지 라는 말을 많이 보게 된다. 예를 들어 객체의 상태를 직접 변경하지 않고, 어떤 작업을 요청하는 메세지 soongjamm.tistory.com 클래스 : 객체를 만들어내기위한 설계도, ..
-
[C++] 동적 할당/new, delete공부/C++ 2022. 7. 7. 23:17
https://boycoding.tistory.com/204 C++ 07.12 - new와 delete를 사용한 동적 메모리 할당 (Dynamic memory allocation with new and delete) new와 delete를 사용한 동적 메모리 할당 (Dynamic memory allocation with new and delete) 동적 메모리(dynamic memory) 할당이 필요하다. C++은 세 가지 기본 타입의 메모리 할당을 지원한다. 이 중 두 가지는.. boycoding.tistory.com