본문 바로가기

컴퓨터/C++과 알고리즘7

알고리즘 Algorithm 알고리즘 Algorithm주어진 문제를 해결하기 위한 단계적 절차 또는 명확한 규칙을 의미한다. 일반적으로 알고리즘은 입력을 받아 출력을 생성하는 과정으로 구성되며,  이 과정은 유한개의 규칙으로 이루어져야 하고, 각 단계는 명확하고 이해 가능해야한다. 2025. 1. 28.
[C++] 매개변수 parameter 매개변수(parameter) 함수를 만들 때 함수에 전달되는 값을 저장하기 위해   함수의 매개변수는 함수의 선언에서 정의한다. 함수는 반환 타입, 함수 이름, 그리고 괄호 안에 매개변수를 정의한다. 또한 함수 호출 시 실제 사용하는 매개변수의 값(value)을 실인수(actual argument) 라고 부르기도 한다. 2025. 1. 28.
[C++] 변수, 연산자 변수(variable) : 함수 또는 코드 내에서 사용/전달되는 값을 저장하기 위해 선언함. e.g) int num; 연산자(operator)  : 프로그래밍 언어에서 +, > 연산을 수행하는 기호 피연사자(operand) : 연산의 대상이 되는 식 관계 연산자 : , >= (왼쪽, 오른쪽 피연산자의 대소 관계를 판단) 등가 연산자 : ==, != (값이 같은지의 관계를 판단) 식(expression) : 변수, 상수, 변수나 상수를 연산자로 결합한 것 대입식(assignment expression) : x = n + 135  제어식 : if문, while문 등에서 조건 판정을 하기 위해 (1 == Num)과 같이 괄호 내에 넣는 식 2025. 1. 28.
C++ 14 예외처리 catch(char*) C++ 14 에서는 catch(char *) 를 사용할 수 없다. 대신 const char * 로 사용해야한다. 2023. 11. 7.
[C++] map - erase/clear 사용 시 메모리 누수 발생할 경우 기본 형태 : map myMap; 설정 : value 값을 포인터로 주었을 때 map m_PlayerMap; 위의 변수를 클래스의 멤버 변수로 사용 예시와 같이 맵을 사용했을 경우, 클래스가 소멸하거나 단순히 clear 만을 사용했을 때는 메모리 누수가 발생한다. 따라서 내부의 포인터로 할당한 변수를 직접 해제해 주는 작업이 필요하다. 저런식으로 변수로 사용해놓고 무심결에 해제 작업을 해주지 않는다면, 골치아픈 일이 생길 것이다. 따라서 어떤 작업을 할때 무언가 생성하는 부분을 만든다면, 동작보다 해제 하는 것부터 작업하는것을 추천한다. 닝겐은 항상 실수를 하기에 작업을 하다가 빼먹을 수 있기 때문이다. map m_PlayerMap; -> Monster 클래스에서 멤버변수로 이렇게 설정했다 가정하자. i.. 2022. 11. 11.
[OOP / 다형성] c++ override, overload (오버로드, 오버라이드) 객체지향 프로그래밍(OOP : Object-Oriented Programming)  의중요한 특징 중 하나인 다형성은 하나의 객체를 여러가지의 타입으로 사용가능한 것을 말합니다.  C++ 에서 다형성의 구성 요소 중함수(메소드) 오버 로딩오버라이딩과 가상 함수 (virtual)이 두 가지에 대해 알아보겠습니다. 오버로딩과 오버라이딩은 단어가 몹시 비슷해서 구분하기가 쉽지 않아,항상 우리를 헷갈리게 한 두 녀석입니다.하지만 이 녀석들은 확실하게 다른 역할을 합니다.  [오버로딩]오버로딩(overloading) : 같은 함수의 이름을 매개 변수의 타입이나 개수가 다른 함수로 정의한다. 오버로딩의 특징 : - 함수의 이름은 같아야 합니다.- 매개 변수와 매개 변수의 개수 혹은 타입은 달라야 합니다.- 매개 변.. 2022. 7. 14.
[알고리즘] 피셔-예이츠 셔플(Fisher-Yates Shuffle) 알고리즘 피셔 - 예이츠 셔플은 무작위 순열을 생성하기 위한 알고리즘입니다.  예시 :섞으려고 하는 숫자를 모두 모자에 넣은 뒤,배열안에 숫자가 남아있지 않을 때까지 무작위로 숫자를 모자에서 뽑습니다.  코드 이 알고리즘은 C#으로 구현하였습니다.using System;using System.Collections.Generic;class Shuffle{ public static Random rng = new Random(); static void Main(string[] args) { List list = new List() { 1, 2, 3, 4, 5, 6, 7, 8 }; Shuffle_List(list); foreach (var item in list) .. 2022. 6. 16.