C++에서 우정은 상속되지 않습니다. 즉, 하나의 부모 클래스에 친구 기능이 있는 경우 자식 클래스는 해당 기능을 친구로 가져오지 않습니다. 이 예제에서는 display() 함수가 MyBaseClass의 친구이지만 MyDerivedClass의 친구가 아니기 때문에 오류를 생성합니다. display()는 MyBaseClass의 private 멤버에 액세스할 수 있습니다. 예시 #include <iostream> using namespace std; class MyBaseClass { protecte
C++에서는 함수 오버로딩 기술을 사용할 수 있습니다. 그러나 일부 기본 클래스에 오버로드된 형식(동일한 이름의 다른 함수 시그니처)의 메서드가 하나 있고 파생 클래스가 기본 내부에 있는 함수 중 하나를 재정의하면 해당 함수의 오버로드된 모든 버전이 숨겨집니다. 파생 클래스입니다. 명확한 아이디어를 얻기 위해 한 가지 예를 살펴보겠습니다. 예시 #include namespace std;class MyBaseClass 사용 { public:void my_function() { cout <<이것은 my_function입니다. 이것은
여기서 우리는 C++의 fesetround() 및 fegetround() 메서드를 볼 것입니다. 이러한 메소드는 cfenv 라이브러리에서 찾을 수 있습니다. fesetround() 메서드는 지정된 부동 소수점 반올림 방향을 현재 반올림 방향으로 설정하는 데 사용됩니다. 이것은 rint(), Nearlyint() 및 C++의 다른 반올림 함수와 함께 사용됩니다. 구문은 아래와 같습니다 - int fesetround(int round); 반올림은 FE_TONEAREST, FE_DOWNWARD, FE_UPWARD 등일 수 있습니다.
여기서는 B-Tree를 사용하여 정렬된 시퀀스를 얻는 방법을 살펴보겠습니다. B-트리는 n-항 트리입니다. 정렬된 시퀀스를 얻으려면 B-트리를 만든 다음 숫자를 추가할 수 있습니다. 여기서 B-트리는 최대 5개의 노드를 보유할 수 있습니다. 노드의 수가 증가하면 노드를 분할하여 새로운 레벨을 형성합니다. 노드가 5개(최대)와 같이 적은 수의 요소를 보유하므로 버블 정렬 기술을 사용하여 정렬합니다. 요소 수가 매우 적기 때문에 성능에 큰 영향을 미치지 않습니다. 트리를 순회한 후에는 다른 노드의 모든 값을 얻을 수 있습니다. 이러한
오일러 회로에 대해 알기 위해 오일러 경로에 대한 아이디어가 있습니다. 오일러 경로는 경로입니다. 이를 통해 모든 노드를 정확히 한 번 방문할 수 있습니다. 같은 모서리를 여러 번 사용할 수 있습니다. 오일러 회로는 특수한 유형의 오일러 경로입니다. 오일러 경로의 시작 꼭짓점도 해당 경로의 끝 꼭짓점과 연결되어 있는 경우입니다. 회로를 감지하려면 다음 조건을 따라야 합니다. 그래프가 연결되어 있어야 합니다. 무방향 그래프의 정점이 홀수 차수를 가지지 않으면 오일러 회로입니다. 입력 출력 그래프에는 오일러 회로가 있습니다.
오일러 경로는 경로입니다. 이를 통해 모든 노드를 정확히 한 번 방문할 수 있습니다. 같은 모서리를 여러 번 사용할 수 있습니다. 오일러 회로는 특수한 유형의 오일러 경로입니다. 오일러 경로의 시작 꼭짓점도 해당 경로의 끝 꼭짓점과 연결되어 있는 경우입니다. 오일러 경로를 감지하려면 다음 조건을 따라야 합니다. 그래프가 연결되어 있어야 합니다. 이제 무방향 그래프의 정점이 홀수 차수를 가지지 않으면 오일러 회로이며 하나의 오일러 경로이기도 합니다. 정확히 두 개의 정점이 홀수 차수를 가질 때 오일러 경로입니다. 입력 출력
오일러 경로는 경로입니다. 이를 통해 모든 가장자리를 정확히 한 번 방문할 수 있습니다. 같은 정점을 여러 번 사용할 수 있습니다. 이 경우 오일러 경로도 포함하므로 오일러 회로를 포함하는 하나의 그래프도 고려됩니다. 방향 그래프에 오일러 경로가 있는지 여부를 확인하려면 다음 조건을 확인해야 합니다. - 단 하나의 정점 an이 있어야 합니다. 여기서 (in-degree + 1 =out_degree) 단 하나의 꼭짓점 bn이 있어야 합니다. 여기서 (in-degree =out_degree + 1) Rest 모든 정점은 (in-de
C++ 프로그램을 사용하여 Linux 플랫폼에서 수정된 파일과 기존 파일과 새로 생성된 파일을 나열하는 방법을 살펴보겠습니다. 작업은 매우 간단합니다. Linux 셸 명령을 사용하여 원하는 순서로 파일을 가져올 수 있습니다. ls –l 명령은 긴 목록 형식의 모든 파일을 가져오는 데 사용됩니다. 여기에 시간을 기준으로 정렬하는 옵션을 더 추가합니다. (오름차순 및 내림차순). –t 명령은 시간을 기준으로 정렬하는 데 사용되며 –r을 추가하여 순서를 반대로 할 수 있습니다. 명령은 다음과 같습니다. ls –lt ls &
문자열의 문자를 다른 순서로 정렬할 수 있습니다. 여기서 우리는 주어진 문자열에서 형성될 수 있는 순열의 수를 계산하는 방법을 볼 것입니다. 하나의 문자열이 abc라면 우리는 알고 있습니다. 세 개의 문자가 있습니다. 우리는 그들을 3으로 정렬할 수 있습니다! =6가지 다른 방법. 따라서 n개의 문자가 있는 문자열을 n으로 정렬할 수 있습니다! 다른 방법들. 그러나 이제 aab와 같이 동일한 문자가 여러 번 존재하면 순열이 6개가 되지 않습니다. 아바 아아브 바아 바아 아아브 아바 여기서 (1,6), (2, 5), (3,4)
템플릿은 특정 유형과 독립적인 방식으로 코드를 작성하는 일반 프로그래밍의 기초입니다. 템플릿은 일반 클래스 또는 함수를 만들기 위한 청사진 또는 공식입니다. 반복자 및 알고리즘과 같은 라이브러리 컨테이너는 일반 프로그래밍의 예이며 템플릿 개념을 사용하여 개발되었습니다. 벡터와 같은 각 컨테이너에 대한 단일 정의가 있지만 vector 또는 vector 과 같은 다양한 종류의 벡터를 정의할 수 있습니다. 예시 코드 #include <iostream> #include <string> using namespace
C++에서 템플릿은 일반화된 함수와 클래스를 만드는 데 사용됩니다. 따라서 int, char, float 또는 템플릿을 사용하는 일부 사용자 정의 데이터와 같은 모든 유형의 데이터를 사용할 수 있습니다. 이 섹션에서는 템플릿 전문화를 사용하는 방법을 살펴보겠습니다. 이제 다양한 유형의 데이터에 대해 일반화된 템플릿을 정의할 수 있습니다. 그리고 특별한 유형의 데이터를 위한 몇 가지 특별한 템플릿 기능. 더 나은 아이디어를 얻기 위해 몇 가지 예를 살펴보겠습니다. 예시 코드 #include<iostream> using n
이 섹션에서는 행렬 행렬식을 사용하여 2D 좌표 공간에서 삼각형의 면적을 찾는 방법을 살펴봅니다. 이 경우 우리는 공간이 2D라고 생각합니다. 그래서 우리는 각 점을 행렬에 넣습니다. 첫 번째 열에 x 값을 넣고 두 번째 열에 y를 넣고 세 번째 열로 1을 취합니다. 그런 다음 그것들의 행렬식을 찾으십시오. 삼각형의 면적은 행렬식 값의 절반이 됩니다. 행렬식이 음수이면 단순히 그것의 절대값을 취하십시오. $$Area\:=\:absolute\:of\begin{pmatrix}\frac{1}{2} \begin{vmatrix} x_1\:
이 프로그램에서 우리는 하나의 숫자가 자신보다 작은 숫자의 합으로 표현될 수 있는 방법의 수를 계산할 것입니다. 이 프로그램은 주어진 숫자의 파티션을 계산합니다. 숫자 n을 입력으로 받은 다음 숫자에서 시작하여 한 번에 1을 제거하여 나눕니다. 새 파티션이 생성되면 카운터를 늘립니다. 알고리즘 파티션 개수(n) 입력 :숫자 n 출력 :파티션 수 Begin Create array p of size n k := 0 count := -1 pu
이 프로그램에서는 C++에서 정수의 자릿수를 확대/축소하는 방법을 볼 것입니다. 확대/축소는 다른 문자를 사용하여 숫자를 더 큰 형태로 인쇄하는 것을 의미합니다. 논리는 간단하지만 0에서 9까지 하나씩 더 큰 숫자를 만들어야 합니다. 예시 코드 #include <bits/stdc++.h> using namespace std; void print_zero() { for (int i=0; i<5; i++) { for (int j=0; j<5; j++) {
여기에서 우리는 다른 영역에서 우리를 도울 수 있는 C++ 프로그래밍 언어의 몇 가지 좋은 트릭을 볼 것입니다. 경쟁적인 프로그래밍 이벤트에 참여하려는 경우 이러한 트릭을 사용하면 코드 작성 시간을 줄이는 데 도움이 됩니다. 이러한 예를 하나씩 살펴보겠습니다. % 연산자를 사용하지 않고 숫자가 홀수인지 짝수인지 확인합니다. 이 트릭은 간단합니다. 숫자와 1로 비트 AND 연산을 수행할 수 있습니다. 결과가 0이 아니면 홀수이고 그렇지 않으면 짝수입니다. 논리가 너무 간단합니다. 모든 홀수는 LSb에서 1을 갖습니다. 따라서 AND
C++에는 정의되지 않은 몇 가지 동작이 있습니다. 이들은 C++에서 몇 가지 작업을 수행하여 식별됩니다. 그러한 직접적인 정의는 없습니다. 다른 목적으로 C++를 사용하려는 모든 프로그래머는 이 몇 가지 사항을 알고 있어야 합니다. 여기에서 몇 가지 C++ 코드를 볼 수 있습니다. 그리고 결과를 추측해 보세요. 코드는 일부 런타임 오류를 생성합니다. 0으로 나누기 오류가 정의되지 않았습니다. 예시 코드 #include 네임스페이스 std;int main() { int x =10, y =0; 정수 z =x / y; cout <<
C++에는 하나의 개체가 일부 클래스 유형의 인스턴스인지 확인하는 직접적인 방법이 없습니다. 자바에서는 이런 종류의 기능을 얻을 수 있습니다. C++11에서는 is_base_of라는 항목을 찾을 수 있습니다. 이것은 주어진 클래스가 주어진 객체의 베이스인지 아닌지를 검사할 것입니다. 그러나 이것은 주어진 클래스 인스턴스가 해당 기능을 사용하는지 여부를 확인하지 않습니다. instanceof와 유사한 가능한 가장 가까운 기능은 dynamic_cast (expression)을 사용하여 얻을 수 있습니다. . 이것은 주어진 값을 지
여기에서 사전 정의된 소수 자릿수까지 일부 부동 소수점 숫자를 인쇄하는 방법을 살펴보겠습니다. C++에서는 cout과 함께 setprecision을 사용하여 이 단어를 수행할 수 있습니다. 이것은 C++의 iomanip 헤더 파일 아래에 있습니다. 예시 코드 #include <iostream> #include <iomanip> using namespace std; int main() { double x = 2.3654789d; cout << "P
C++에서는 함수에 인라인 키워드를 사용할 수 있습니다. C++ 17 버전에서는 인라인 변수 개념이 등장했습니다. 인라인 변수는 여러 번역 단위로 정의할 수 있습니다. 또한 하나의 정의 규칙을 따릅니다. 이것이 두 번 이상 정의되면 컴파일러는 최종 프로그램에서 이들을 모두 단일 개체로 병합합니다. C++(C++17 버전 이전)에서는 클래스에서 직접 정적 변수 값을 초기화할 수 없습니다. 클래스 외부에서 정의해야 합니다. 예시 코드 #include<iostream> using namespace std; class MyC
여기에서 우리는 다른 영역에서 우리를 도울 수 있는 C++ 프로그래밍 언어의 몇 가지 좋은 기능과 트릭을 볼 것입니다. 경쟁적인 프로그래밍 이벤트에 참여하려는 경우 이러한 트릭을 사용하면 코드 작성 시간을 줄이는 데 도움이 됩니다. 이러한 예를 하나씩 살펴보겠습니다. % 연산자를 사용하지 않고 숫자가 홀수인지 짝수인지 확인합니다. 이 트릭은 간단합니다. 숫자와 1로 비트 AND 연산을 수행할 수 있습니다. 결과가 0이 아니면 홀수이고 그렇지 않으면 짝수입니다. 논리가 너무 간단합니다. 모든 홀수는 LSb에서 1을 갖습니다. 따라서