C++

[Basic C++] #65_getline() C++에서 제공하는 getline() 함수에 대해 알아보겠습니다. Overview 개념 코드 예제 #0. 개념 1. getline() getline() 함수는 문자열을 입력받는 함수입니다. getline() 함수는 입력 스트림에서 개행 문자(\n)를 만날 때까지 문자를 읽습니다. 즉, 사용자가 작성한 공백을 포함한 문자열을 입력해도 개행 문자를 만날 때까지 모든 문자를 읽을 수 있습니다! #1. 코드 예제 1. 헤더 #include 2. 문법 istream& getline (istream& is, string& str, char delim); Details getline() 함수는 첫 번째 인자로 입력 스트림 객체(cin)를 전달받습니다. getline() ..
[Basic C++] #64_stack C++에서 제공하는 stack 클래스에 대해 알아보겠습니다. Overview 개념 선언 멤버 함수 예제 #0. 개념 1. Stack C++에서 제공하는 stack은 LIFO 데이터 구조를 구현하는 STL 컨테이너입니다. stack은 기본적으로 컨테이너의 가장 뒤쪽에서만 데이터를 삽입하고 삭제합니다. #1. 선언 1. 헤더 #include 2. 선언 및 초기화 #include #include using namespace std; int main() { // #0. 빈 스택 선언 stack s1; // #1. 기존 배열을 활용한 초기화 int arr[] = { 1, 2, 3, 4, 5 }; int n = sizeof(arr) / sizeof(arr[0]); stack ..
[Basic C++] #63_string C++에서 제공하는 string 클래스에 대해 알아보겠습니다. Overview 정의 선언 멤버 함수 그 외 특징 예제 #0. 정의 1. string 클래스 C++에서 제공하는 string 클래스는 문자열을 다루기 위한 클래스입니다. string 클래스는 문자열을 저장하고 다양한 조작 함수를 제공합니다. string 클래스를 활용하면 복잡한 작업들을 직접 구현할 필요가 없고, 효율적으로 문자열을 다룰 수 있습니다. C언어의 char* 혹은 char[]과 달리, 문자열 끝에 '\0'이 들어있지 않습니다. #1. 선언 1. 헤더 #include 2. 선언 혹은 초기화 #include using namespace std; int main() { string str("He..
[Basic C++] #62_erase(), 주의할 점 STL 순차 컨테이에서 활용하는 erase() 함수에 대해 알아보겠습니다. Overview 개념 코드 예제 #0. 개념 1. std::erase() iterator erase (const_iterator position); iterator erase (const_iterator first, const_iterator last); Details erase() 함수는 STL의 순차 컨테이너에 저장된 요소를 제거하는 데 사용됩니다. #1. 코드 예제 1. 예제-1 #include #include using namespace std; int main() { vectorv = { 0, 1, 2, 3, 4, 5, 6 }; v.erase(v.begin(), v...
[기술 질문] #18_알고리즘 복잡도 알고리즘의 복잡도에 대해 알아보겠습니다. Overview 개념 시간 복잡도 공간 복잡도 #0. 개념 1. 복잡도 알고리즘의 복잡도는 알고리즘의 입력 크기와 연산 횟수 사이의 관계를 나타내는 함수입니다. 보통 시간 복잡도와 공간 복잡도로 나누어져 있습니다. #1. 시간 복잡도 1. 개념 시간 복잡도는 알고리즘이 실행되는 동안 수행하는 기본적인 연산 횟수를 입력 크기와 연관시켜 분석하는 것입니다. 결과적으로, 입력 크기에 따라서 알고리즘의 실행 시간이 어떻게 변화하는지 나타내며, 알고리즘의 효율성과 성능을 평가하는 중요한 지표 중 하나입니다. Big-O 표기법은 알고리즘의 시간 복잡도를 점근적으로 표기하는 방법입니다. 즉, 알고리즘의 입력의 크기가 충분히 커질 때, 알고..
[기술 질문] #17_Lambda C++의 Lambda에 대해 알아보겠습니다. Overview 개념 캡처 블록 람다의 활용 LinQ [Basic C++] #44_람다 표현식, 기본 [Basic C++] #44_람다 표현식, 기본 STL 알고리즘 중 "람다 표현식"에 대해 알아보겠습니다. "전문가를 위한 C"의 17 항목, "STL 알고리즘 마스터하기"에 해당하는 내용입니다. Overview 개념 syntax 캡처 블록 webddevys.tistory.com return type { function body } Details [정의] : C++의 람다 표현식은 익명의 함수 객체를 인라인으로 정의할 수 있도록 해주는 기능입니다. [구성] : 람다 표현식은 대괄호로 시작하는 캡처 리스트, 중괄호로 시작하는 매..
[Unreal_C++_DarkSoul]#14_Actor Compnent 간 소통 객체의 Actor Component간 소통을 구현합니다. Overview 문제 해결 GetOwner() vs FindComponentByClass() #0. 문제 1. 문제 GameObject 객체는 다양한 Actor Component를 가집니다(Mana 컴포넌트, Weapon 컴포넌트 등) Actor Compnent 간의 소통을 위해 각 컴포넌트는 BeginPlay() 정의부에서 GetOwner()를 통해 액터 객체를 가져와 서로의 컴포넌트에 대한 참조를 가져오는 방법을 사용합니다. 하지만, 각 컴포넌트의 초기화 완료 시점이 다르기 때문에, 아직 초기화되지 않은 컴포넌트의 참조를 가져오는 에러가 발생합니다. 이때, Tick..
[기술 질문] #15_RTTI, 런타임 타입 정보 C++의 RTTI에 대해 알아보겠습니다.  Overview 개념typeid캐스팅 #0. 개념1. RTTI[정의] : C++의 RTTI는 "Run-Time Type Information"의 약자로, 프로그램 실행 중 객체의 동적 타입 정보를 식별하고 검색하는 기능을 제공합니다.[특징] : 다형성 제공 : C++의 가상 함수는 다형성을 구현하는 중요한 매커니즘 중 하나입니다. 파생 클래스는 기본 클래스의 가상 함수를 오버라이딩 할 수 있으며, 동일한 시그니처의 함수를 하나의 데이터 타입에 귀속되지 않고, 여러 유형으로 표현될 수 있도록 해줍니다. 가상 함수는 동적 바인딩을 통해 객체의 동적 타입에 맞는 적절한 함수 호출을 보장합니다. 만약, 기본 클래스의 포..
[기술 질문] #15_가상 함수 C++의 가상 함수에 대해 알아보겠습니다. Overview 개념 가상 소멸자 추상 클래스 인터페이스 #0. 개념 1. 가상 함수 [정의] : C++의 가상 함수는 기본 클래스에서 virtual 예약어와 함께 선언되며, 파생 클래스에서 오버라이드(재정의)할 수 있습니다. 컴파일러는 해당 함수를 가상 함수로 처리하고 객체의 타입에 따라 해당 함수의 호출 대상을 동적으로 결정할 수 있습니다. 결과적으로, 가상 함수의 사용은 객체의 타입에 관계없이 일관된 인터페이스를 제공하며, 파생 클래스의 재정의를 통해 유연하게 확장할 수 있도록 해줍니다. [특징] : 가상 함수는 다형성을 구현하는 중요한 메커니즘입니다. 가상화된 멤버 함수는 파생 클래스에서 오버라이딩 할 수 있으며, 같은 이..
[기술 질문] #14_템플릿, Template C++의 템플릿에 대해 알아보겠습니다. Overview 개념 템플릿 변수 템플릿 함수 템플릿 non-type 파라미터 템플릿 클래스 이중 템플릿 #0. 개념 1. 정의 C++의 '템플릿'은 함수나 클래스가 특정한 데이터 형식이 유형에 귀속되지 않고, 일반화되어 여러 데이터 형에 대해 동작할 수 있도록 하는 '제네릭 프로그래밍'을 제공합니다. 따라서, 템플릿은 서로 다른 유형의 클래스 혹은 함수의 인스턴스 생성을 위한 청사진을 제공하며, 컴파일 시점에 그 상세 유형이 결정됩니다. 2. 특징 [ 일반화 ] : 템플릿은 특정한 데이터 형식에 의존하지 않고 여러 종류의 데이터 형식에 대해 동작할 수 있도록 합니다. 이러한 특징은 사용자로 하여금 코드 작성의 유연성과..
Hardii2
'C++' 태그의 글 목록 (19 Page)