할당은 객체의 이전 상태를 찢고 새 상태를 만드는 2단계로 구성됩니다. 소멸자는 첫 번째 단계에 사용되고 복사 생성자는 두 번째 단계에 사용됩니다. 이 두 가지를 모두 구현하는 것은 간단합니다. 그러나 할당 연산자를 오버로드하면 구현하기가 상당히 어려울 수 있습니다. 복사와 스와피디엄은 동일한 솔루션입니다. 이 관용구는 복사 생성자를 사용하여 데이터의 로컬 복사본을 만듭니다. 그런 다음 스왑 기능을 사용하여 이전 데이터를 새 데이터로 스왑합니다. 임시 복사본은 소멸자를 사용하여 소멸됩니다. 마침내 우리는 새로운 데이터의 복사본만
좀비, 고아 및 데몬 프로세스에 대한 세부 정보는 다음과 같습니다. 좀비 프로세스 좀비 프로세스는 실행이 완료되었지만 여전히 프로세스 테이블에 항목이 있는 프로세스입니다. 좀비 프로세스는 일반적으로 자식 프로세스에 대해 발생합니다. 부모 프로세스는 여전히 자식의 종료 상태를 읽어야 하기 때문입니다. 이것이 대기 시스템 호출을 사용하여 완료되면 좀비 프로세스는 프로세스 테이블에서 제거됩니다. 이것을 좀비 프로세스를 수확하는 것으로 알려져 있습니다. 좀비 프로세스의 생성과 종료를 보여주는 다이어그램은 다음과 같습니다. 좀비 프
C++ STL에는 std::for_each와 같은 유용한 일반 함수가 포함되어 있습니다. 불행히도, 특히 적용하려는 펑터가 특정 기능에 고유한 경우 사용하기가 상당히 번거로울 수 있습니다. 따라서 생성할 이 함수는 해당 네임스페이스에서 한 곳에서 사용되는 것입니다. 이에 대한 해결책은 익명 함수를 사용하는 것입니다. C++는 익명 함수를 생성할 수 있도록 C++11에 람다 표현식을 도입했습니다. 예를 들어, 예시 #include<iostream> #include<vector> #include <algor
C 또는 C++ 라이브러리 함수 double fabs(double x)는 x의 절대값을 반환합니다. x− 이것은 부동 소수점 값입니다. 이 함수는 x의 절대값을 반환합니다. 다음은 fabs() 함수에 대한 선언입니다. double fabs(double x) 다음 예제는 fabs() 함수의 사용법을 보여줍니다. 예시 #include <iostream> #include <cmath> using namespace std; int main () { int a, b; a
이진 검색 트리는 3가지 속성이 있는 이진 트리 데이터 구조입니다 - 노드의 이진 탐색 트리의 왼쪽 하위 트리에는 해당 노드의 키보다 작은 키를 가진 노드만 포함됩니다. 이진 검색 트리 노드의 오른쪽 하위 트리에는 해당 노드의 키보다 큰 키를 가진 노드만 포함됩니다. 하위 트리의 왼쪽과 오른쪽도 각각 이진 검색 트리여야 합니다. 알고리즘 Begin function BSTUtill() If node is equals to NULL then &
이 섹션에서는 C++에서 초기 바인딩과 후기 바인딩이 무엇인지 살펴보겠습니다. 바인딩은 식별자를 주소로 변환하는 프로세스를 의미합니다. 각 변수 및 기능에 대해 이 바인딩이 수행됩니다. 함수의 경우 컴파일러에서 올바른 함수 정의와 호출을 일치시킵니다. 바인딩은 컴파일 타임이나 런타임에 수행됩니다. 조기 바인딩 이것은 컴파일 시간 다형성입니다. 여기에서 주소를 함수 호출에 직접 연결합니다. 함수 오버로딩의 경우 초기 바인딩의 예입니다. 예시 #include<iostream> using namespace std; class
이진 검색 트리는 3가지 속성이 있는 이진 트리 데이터 구조입니다. 노드의 이진 탐색 트리의 왼쪽 하위 트리에는 해당 노드의 키보다 작은 키를 가진 노드만 포함됩니다. 이진 검색 트리 노드의 오른쪽 하위 트리에는 해당 노드의 키보다 큰 키를 가진 노드만 포함됩니다. 하위 트리의 왼쪽 및 오른쪽 트리는 각각 이진 검색 트리여야 합니다. 알고리즘 Begin function BSTUtill() If node is equals to NULL then  
C++ 표준 라이브러리는 적절한 날짜 유형을 제공하지 않습니다. C++는 C로부터 날짜 및 시간 조작을 위한 구조 및 함수를 상속합니다. 날짜 및 시간 관련 함수 및 구조에 액세스하려면 C++ 프로그램에 헤더 파일을 포함해야 합니다. 네 가지 시간 관련 유형이 있습니다:clock_t, time_t, size_t 및 tm. clock_t, size_t 및 time_t 유형은 시스템 시간과 날짜를 일종의 정수로 나타낼 수 있습니다. 구조 유형 tm은 다음 요소를 갖는 C 구조의 형태로 날짜와 시간을 보유합니다. - struct t
이진 트리는 각 노드가 왼쪽 자식과 오른쪽 자식으로 정의되는 최대 두 개의 자식을 갖는 트리 데이터 구조입니다. 알고리즘 Begin function identical(): Take two nodes r1 and r2 as parameter. If r1 and r2 is NULL then Return true. If r1 or r
멀티스레딩은 멀티태스킹의 특수한 형태이며 멀티태스킹은 컴퓨터에서 두 개 이상의 프로그램을 동시에 실행할 수 있는 기능입니다. 일반적으로 멀티태스킹에는 프로세스 기반과 스레드 기반의 두 가지 유형이 있습니다. 프로세스 기반 멀티태스킹은 프로그램의 동시 실행을 처리합니다. 스레드 기반 멀티태스킹은 동일한 프로그램 조각의 동시 실행을 처리합니다. 다중 스레드 프로그램은 동시에 실행할 수 있는 두 개 이상의 부분을 포함합니다. 이러한 프로그램의 각 부분을 스레드라고 하며 각 스레드는 별도의 실행 경로를 정의합니다. C++에는 다중 스
표현식 트리는 기본적으로 표현식을 나타내는 데 사용되는 이진 트리입니다. 표현식 트리에서 노드는 연산자에 해당하고 각 리프 노드는 피연산자에 해당합니다. 이것은 inorder, preorder 및 postorder 순회에서 후위 표현식에 대한 표현식 트리를 구성하는 C++ 프로그램입니다. 알고리즘 Begin Function r() has a character variable as parameter. If the characters are + or - or * or / th
C/C++ 라이브러리 함수 double exp(double x)는 e의 1승을 제곱한 값을 반환합니다. 다음은 exp() 함수에 대한 선언입니다. double exp(double x) 매개변수는 부동 소수점 값입니다. 그리고 이 함수는 x의 지수값을 반환합니다. 예시 #include <iostream> #include <cmath> using namespace std; int main () { double x = 0; cout << "The e
최대 두 개의 자식이 있는 이진 트리로 왼쪽 자식과 오른쪽 자식으로 지정됩니다. 이것은 이진 트리에서 가장 깊은 왼쪽 리프를 찾는 C++ 프로그램입니다. 알고리즘 Begin. function deepestLLeafutil() find the deepest left leaf in a given binary tree: lvel is level of current node. maxlvel 
C/C++ 라이브러리 함수 double log(double x)는 x의 자연 로그(기수)를 반환합니다. 다음은 log() 함수에 대한 선언입니다. double log(double x) 매개변수는 부동 소수점 값입니다. 그리고 이 함수는 x의 자연 로그를 반환합니다. 예시 #include <iostream> #include <cmath> using namespace std; int main () { double x, ret; x = 2.7;
이 섹션에서 우리는 C++에서 memset() 함수의 목적이 무엇인지 볼 것입니다. 이 함수는 문자의 값을 부호 없는 문자로 변환하고 주어진 str[]이 가리키는 객체의 처음 n개 문자 각각에 복사합니다. n이 문자열 크기보다 크면 정의되지 않습니다. memset() 함수의 구문 무효* memset(무효* str, int c, size_t n); 이 예에서는 하나의 문자열을 사용한 다음 각 문자를 최대 길이 n의 다른 문자로 변환합니다. 예시 #include네임스페이스 std;int main() { char str[] =Hell
최대 두 개의 자식이 있는 이진 트리로 왼쪽 자식과 오른쪽 자식으로 지정됩니다. 바이너리 트리에서 가장 낮은 공통 조상을 찾는 C++ 프로그램입니다. 알고리즘 Begin Create a structure n to declare data d, a left child pointer l and a right child pointer r. Create a function to create newnode. Call a function LCA() to Find lowest common ancestor in a binar
벡터의 벡터를 2D 벡터라고 합니다. 알고리즘 Begin Declare a variable v to the 2D vector type. Initialize values to the vector v. Print “the 2D vector is:”. for (int i = 0; i < v.size(); i++) for (int j = 0; j < v[i].size(); j++
C/C++ 라이브러리 함수 div_t div(int numer, int denom)은 numer(분자)를 분모(분모)로 나눕니다. 다음은 div() 함수에 대한 선언입니다. div_t div(int numer, int denom) 매개변수는 분자와 분모입니다. 이 함수는 두 개의 멤버가 있는 에 정의된 구조의 값을 반환합니다. div_t:int quot; 인트렘; 예시 #include <iostream> #include <cstdlib> using namespace std; int main () {  
이것은 주어진 이진 트리에서 가장 큰 독립 집합(LIS)의 크기를 찾는 C++ 프로그램입니다. 알고리즘 Begin. Create a structure n to declare data d, a left child pointer l and a right child pointer r. Call a function max() to return maximum between two integers. Create a function LIS() to return the size
이 문제에서는 Hello World를 콘솔에 인쇄하는 방법을 볼 것이지만 기본 기능에는 아무 것도 쓸 수 없습니다. 이 문제는 두 가지 다른 방법으로 해결할 수 있습니다. 첫 번째 접근 방식에서는 전역 변수를 만든 다음 printf() 함수의 반환 값을 해당 변수에 저장합니다. printf()가 실행되면 인쇄됩니다. 더 나은 이해를 위해 코드를 참조하십시오. 예시 #include<iostream> using namespace std; int a = printf("Hello World"); int mai