여기서 생성자 위임이 무엇인지 살펴보겠습니다. 생성자가 같은 클래스의 다른 생성자를 호출하면 생성자 위임이라고 합니다. 이 기능은 C++11부터 제공됩니다. 다음 프로그램을 보고 이 코드의 문제점을 분석해보자. 예시 #include <iostream> using namespace std; class MyClass { int a, b, c; public: MyClass(){ a = b = c = 0; &
이 섹션에서는 C++에서 fmax() 및 fmin()을 변환하는 방법을 볼 것입니다. fmax() 및 fmin()은 cmath 헤더 파일에 있습니다. 이 함수는 float, double 또는 long double 유형의 두 값을 취하고 각각 fmax() 및 fmin()을 사용하여 최대값 또는 최소값을 반환합니다. 누군가가 float와 double을 비교하거나 long double을 float와 비교하려는 경우와 같이 인수 유형이 다른 경우 함수는 암시적으로 해당 값으로 유형 변환한 다음 해당 값을 반환합니다. 예시 #includ
b이면 - b를 반환합니다. 그렇지 않으면 0을 반환합니다. 예시 #include <cmath> #include <iostream> using namespace std; main() { cout << "fdim of (5.0, 2.0) is " << fdim(5.0, 2.0) << endl; //positive difference cout << "fdim of (2.0, 5.0) is "
이 섹션에서는 C++에서 lrint() 및 llring()을 볼 것입니다. 먼저 lint()에 대해 논의합시다. = 이 lrint() 함수는 입력 매개변수로 double, float 또는 integer 값을 취하고 소수 부분을 정수 부분으로 반올림하여 long int 값을 반환합니다. 예시 #include <cfenv> #include <cmath> #include <iostream> using namespace std; main() { int x = 40; &n
때때로 우리는 프로그램에서 다양한 수의 입력이 필요합니다. 이 프로그램에서 우리는 cin을 사용하여 다양한 수의 입력을 받는 방법을 볼 것입니다. 입력을 사용하는 것입니다. 값이 숫자가 아닌 경우 false를 반환합니다. 예시 #include <iostream> using namespace std; main() { int input; int n = 0; cout << "Enter numbers. (To stop enter any c
C 또는 C++에는 정수 유형 데이터에 사용되는 네 가지 다른 데이터 유형이 있습니다. 이 네 가지 데이터 유형은 short, int, long 및 long long입니다. 이러한 각 데이터 유형은 서로 다른 메모리 공간을 사용합니다. 크기는 아키텍처와 운영 체제에 따라 다릅니다. 때때로 int는 4바이트를 사용하거나 때로는 2바이트를 사용합니다. 이것은 컴파일러에서도 발생합니다. 그래서 우리는 크로스 컴파일러를 사용할 수 있습니다. 크로스 컴파일러는 기본적으로 현재 플랫폼 이외의 플랫폼에 대해 컴파일할 수 있는 컴파일러입니다.
요즘 컴파일러는 기본 64비트 버전과 함께 제공됩니다. 때때로 우리는 32비트 시스템으로 코드를 컴파일하고 실행해야 합니다. 그럴 때 우리는 이 기능을 사용해야 합니다. 먼저 gcc 컴파일러의 현재 대상 버전을 확인해야 합니다. 이를 확인하려면 이 명령을 입력해야 합니다. gcc –v내장 사양 사용.COLLECT_GCC=gccCOLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapperOFFLOAD_TARGET_NAMES=nvptx-noneOFFLOAD_TARGET_DEFAULT
다음은 파티션을 추가하면 정수가 되도록 주어진 정수의 모든 고유한 인수분해를 가져오는 C++ 프로그램입니다. 이 프로그램에서 양의 정수 n이 주어지고 우리는 양의 정수의 합으로 n을 나타내는 가능한 모든 고유한 방법을 생성할 것입니다. 알고리즘 Begin function displayAllUniqueParts(int m): 1) Set Index of last element k in a partition to 0 2) Initialize first partition as number i
이 프로그램에서 임의의 정점과 가장자리에 대해 임의의 그래프가 생성됩니다. 이 프로그램의 시간 복잡도는 O(v * e)입니다. 여기서 v는 정점의 수이고 e는 가장자리의 수입니다. 알고리즘 인수 목록에서 e를 가장자리 수로, v를 꼭짓점 수로 사용하여 GenRandomGraphs() 함수 개발을 시작합니다. rand() 함수를 사용하여 그래프의 꼭짓점과 모서리 개수에 임의의 값을 할당합니다. 방향에 관계없이 각 꼭짓점의 연결을 인쇄합니다. 차수가 없는 꼭짓점에 대해 Isolated vertex를 인쇄합니다.End 예시 #includ
이분 그래프는 그래프 채색이 가능한 경우 두 가지 색상만 사용하는 그래프입니다. 세트의 꼭짓점은 같은 색으로 지정됩니다. DFS를 사용하여 그래프의 이분화 여부를 확인하는 C++ 프로그램입니다. 알고리즘 Begin An array color[] is used to stores 0 or 1 for every node which denotes opposite colors. Call function DFS from any node. If the
유향 그래프가 주어지면 주어진 그래프의 모든 꼭짓점 쌍(i, j)에 대해 꼭짓점 j가 다른 꼭짓점 i에서 도달할 수 있는지 확인합니다. 도달 가능은 정점 i에서 j까지의 경로가 있음을 의미합니다. 이 도달 가능성 매트릭스를 그래프의 전이적 폐쇄라고 합니다. Warshall 알고리즘은 일반적으로 주어진 그래프 G의 전이적 폐쇄를 찾는 데 사용됩니다. 다음은 이 알고리즘을 구현하는 C++ 프로그램입니다. 알고리즘 Begin 1. Take maximum number of nodes as input. &
이것은 C++에서 string을 char 배열로 변환하는 C++ 프로그램입니다. 여러 가지 방법으로 수행할 수 있습니다. 유형1 알고리즘 Begin Assign a string value to a char array variable m. Define and string variable str For i = 0 to sizeof(m) Copy character by character from m to str. &nb
AVL 트리는 모든 노드에 대해 왼쪽 및 오른쪽 하위 트리의 높이 차이가 1보다 클 수 없는 자체 균형 이진 검색 트리입니다. 주어진 Binary Tree가 AVL Tree인지 확인하는 C++ 프로그램입니다. 알고리즘 Begin function AVL() returns true if the given tree is AVL otherwise false. if(root == NULL) return 1 leftheight = height(root->
가상 메커니즘은 파생 클래스 개체에 대한 기본 클래스 포인터가 있는 경우에만 작동합니다. C++에서 생성자는 가상일 수 없습니다. 클래스의 생성자가 실행될 때 메모리에 가상 테이블이 없다는 것은 아직 가상 포인터가 정의되지 않았음을 의미하기 때문입니다. 따라서 생성자는 항상 가상이 아니어야 합니다. 그러나 가상 소멸자는 가능합니다. 다음은 예입니다. 예시 #include<iostream> using namespace std; class b { public: b() &nbs
C++의 가상 함수는 파생 클래스 개체의 종류를 모른 채 기본 클래스 포인터 목록을 만들고 파생 클래스의 메서드를 호출하는 데 사용됩니다. 가상 기능은 런타임에 늦게 해결됩니다. 다음은 C++ 프로그램의 가상 기능 구현입니다. - 예시 #include <iostream> using namespace std; class B { public: virtual void s() { //virtual function &
직접 주소 지정 테이블을 구현하는 C++ 프로그램입니다. 직접 주소 지정 테이블은 각 요소에 범용 집합 S ={0, 1, . . . ,n − 1} 여기서 n은 너무 크지 않고 각 키는 고유합니다. 빠른 삽입, 검색 및 삭제 작업을 용이하게 합니다. 함수 및 의사코드 Begin insert(): Take the table variables word and key as argument. T[ x.key ] = x, where x is a
Disjoint 집합은 기본적으로 항목이 둘 이상의 집합에 포함될 수 없는 집합의 그룹입니다. 하위 집합에 대한 합집합 및 찾기 작업을 지원합니다. 찾기(): 특정 요소가 속한 하위 집합을 찾는 데 사용되며 해당 특정 집합의 대표자를 반환합니다. 연합(): 두 개의 다른 하위 집합을 단일 하위 집합으로 병합하고 한 집합의 대표가 다른 집합을 대표합니다. 함수 및 의사코드 Begin Assume k is the element makeset(k):
Freivalds 알고리즘은 O(kn^2)에서 실패 확률이 2^-k 미만인 선택된 k 값에 대해 행렬이 동일한지 여부를 결정합니다. 행렬 곱셈을 확인하는 데 사용됩니다. 알고리즘 Begin Take matrix1(n*n), matrix2(n*n), matrix3(n*n) as input. // According to the algorithm we have to verify: // matrix1 × matrix2 = matrix3. &nbs
Gauss Jordan Elimination을 구현하기 위한 C++ 프로그램입니다. 연립방정식의 선형 시스템을 분석하는 데 사용됩니다. 해가 직접 얻어지도록 행 연산을 통해 연립방정식을 대각행렬 형태로 줄이는 데 주로 중점을 둡니다. 알고리즘 Begin n = size of the input matrix To find the elements of the diagonal matrix: Make nested for loops j = 0 to n and i = 0 to
가우스 자이델 방법은 반복 방법에서 선형 방정식 시스템을 푸는 데 사용됩니다. 가우스 자이델 방식을 구현하기 위한 C++ 프로그램입니다. 알고리즘 Begin Take the dimensions of the matrix p and its elements as input. Take the initials values of x and no of iteration q as input. While q>0 Make a for loo