C++ 인라인 함수는 일반적으로 클래스와 함께 사용되는 강력한 개념입니다. 함수가 인라인이면 컴파일러는 컴파일 시간에 함수가 호출되는 각 지점에 해당 함수의 코드 복사본을 배치합니다. 인라인 함수를 변경하면 컴파일러가 모든 코드를 다시 한 번 교체해야 하므로 함수의 모든 클라이언트를 다시 컴파일해야 할 수 있습니다. 그렇지 않으면 이전 기능이 계속 사용됩니다. 함수를 인라인하려면 키워드 inline을 함수 이름 앞에 놓고 함수를 호출하기 전에 함수를 정의하십시오. 컴파일러는 정의된 함수가 라인 이상인 경우 인라인 한정자를 무시할
C++에서 부동 소수점 또는 이중 숫자가 NaN(숫자가 아님)인지 확인하려면 isnan() 함수를 사용할 수 있습니다. isnan() 함수는 cmath 라이브러리에 있습니다. 이 기능은 C++ 버전 11에 도입되었습니다. 따라서 C++11 다음부터는 이 기능을 사용할 수 있습니다. 예시 #include <cmath> #include <iostream> using namespace std; main() { if(isnan(sqrt(30))) { //square root of 30 is a
C 또는 C++에서는 함수에서 직접 여러 값을 반환할 수 없습니다. 이 섹션에서는 몇 가지 트릭을 사용하여 함수에서 둘 이상의 값을 반환하는 방법을 볼 것입니다. call by address 또는 call by reference라는 방법을 사용하여 함수에서 둘 이상의 값을 반환할 수 있습니다. 호출자 함수에서 두 개의 변수를 사용하여 결과를 저장하고 함수는 포인터 유형 데이터를 사용합니다. 따라서 데이터의 주소를 전달해야 합니다. 이 예에서는 하나의 단일 함수에서 두 개의 숫자를 나눈 후 몫과 나머지를 반환할 수 있는 함수를 정
C++를 사용하여 다른 난수를 생성하는 방법을 살펴보겠습니다. 여기서 우리는 0에서 어떤 값까지 범위의 난수를 생성합니다. (이 프로그램에서 최대값은 100입니다.) 이 작업을 수행하기 위해 srand() 함수를 사용하고 있습니다. 이것은 C++ 라이브러리에 있습니다. void srand(unsigned int seed) 함수 rand 함수에서 사용하는 난수 생성기 시드 . srand()의 선언은 아래와 같습니다 - void srand(unsigned int seed) seed라는 매개변수를 사용합니다. 의사 난수 생성기 알고
때로는 int main()을 사용하거나 때로는 void main()을 사용합니다. 이제 이 둘의 차이점이 무엇인지에 대한 질문이 떠올랐습니다. main() 함수는 다른 함수와 같습니다. 또한 인수를 취하고 일부 값을 반환합니다. 프로그램이 이 main() 함수에서 실행을 시작한다는 점을 명심해야 합니다. 따라서 운영 체제는 이 함수를 호출합니다. main()에서 일부 값이 반환되면 운영 체제로 반환됩니다. void main()은 main() 함수가 어떤 값도 반환하지 않음을 나타내지만 int main()은 main()이 정수 유
이 섹션에서는 로컬 시스템의 호스트 이름과 IP 주소를 보다 쉽게 보는 방법을 살펴보겠습니다. 호스트 이름과 IP를 찾는 C 프로그램을 작성합니다. 다음 기능 중 일부가 사용됩니다. 이러한 기능에는 다른 작업이 있습니다. 기능과 작업을 살펴보겠습니다. Sr.No 기능 및 설명 1 gethostname() 로컬 컴퓨터의 표준 호스트 이름을 찾습니다. 2 gethostbyname() 호스트 데이터베이스에서 호스트 이름에 해당하는 호스트 정보를 찾습니다. 3 iten_ntoa() IPv4 인터넷 네트워크 주소를
그래프에 사이클이 없으면 트리입니다. 무방향 그래프가 트리인지 아닌지 확인하는 C++ 프로그램입니다. 알고리즘 Begin function cyclicUtil() : A) Mark the current node as visited. B) Recur for all the vertices adjacent to this vertex. C) If an adjacent is not visited, then recur for that adjacent.
그래프에 사이클이 없으면 트리입니다. DFS를 사용하여 방향 그래프가 트리인지 아닌지 확인하는 C++ 프로그램입니다. 알고리즘 Beginfunction cyclicUtil() :a) 현재 노드를 방문한 것으로 표시하고 재귀 스택의 일부입니다. b) 이 꼭짓점에 인접한 모든 꼭짓점에 대해 재귀합니다. c) 재귀 stack.function cyclic()에서 꼭짓점 제거 예시 #include#include #include 네임스페이스 표준 사용;class G { int n; 목록n =n; adj =new list [n];}void G:
이 프로그램에서 우리는 기본적으로 그래프에서 제거될 때 그래프가 방향성 비순환 그래프가 되는 모서리를 포함하는 피드백 호 세트를 찾을 것입니다. 알고리즘 Begin function checkCG(int n) : n: number of vertices. arr: struct graph variable. Initialize cnt = 0 and size = (n-1). For i = 0 to n-1  
유향 그래프가 주어지면 주어진 그래프의 모든 꼭짓점 쌍(i, j)에 대해 꼭짓점 j가 다른 꼭짓점 i에서 도달할 수 있는지 확인합니다. 도달 가능은 정점 i에서 j까지의 경로가 있음을 의미합니다. 이 도달 가능성 매트릭스를 그래프의 전이적 폐쇄라고 합니다. Warshall 알고리즘은 일반적으로 주어진 그래프 G의 전이적 폐쇄를 찾는 데 사용됩니다. 다음은 이 알고리즘을 구현하는 C++ 프로그램입니다. 알고리즘 Begin 1. Take maximum number of nodes as input. &
이분 그래프는 그래프 채색이 두 가지 색상, 즉, 세트의 꼭짓점은 같은 색으로 지정됩니다. 2색 알고리즘을 사용하여 그래프의 이분화 여부를 확인하는 C++ 프로그램입니다. 함수 및 의사코드 Begin 1. Develop function isSafe() to check if the current color assignment is safe for vertex v, i.e. checks whether the edge exists or not. &nbs
이분 그래프는 두 가지 색상을 사용하여 그래프 채색이 가능한 그래프입니다. 세트의 꼭짓점은 같은 색으로 지정됩니다. BFS를 사용하여 그래프의 이분화 여부를 확인하는 C++ 프로그램입니다. 알고리즘 Begin Function Bipartite(): 1) Assign a color to the source vertex 2) Color all the neighbors with another color except first one color.
이분 그래프는 그래프 채색이 두 가지 색상, 즉, 세트의 꼭짓점은 같은 색으로 지정됩니다. DFS를 사용하여 그래프의 이분화 여부를 확인하는 C++ 프로그램입니다. 알고리즘 Begin 1. An array color[] is used to stores 0 or 1 for every node which denotes opposite colors. 2. Call function DFS from any node. 3. If the node w has not been v
이것은 그래프 행렬의 역함수를 찾는 C++ 프로그램입니다. 역행렬은 행렬이 비특이인 경우에만 존재합니다. 즉, 행렬식이 0이 아니어야 합니다. 역행렬은 여러 가지 방법으로 찾을 수 있습니다. 여기서 우리는 adjoint 행렬과 그 행렬식을 사용하여 그래프 행렬의 역행렬을 찾습니다. 예제와 관련된 단계 행렬의 역행렬을 얻기 위해 함수 INV()를 시작합니다. 함수 DET()를 호출합니다. 함수 ADJ()를 호출합니다. 공식을 사용하여 역행렬을 찾습니다. 역(행렬) =ADJ(행렬) / DET(행렬) 끝. 예시 #include네임스페이스
DAG(Directed Acyclic Graph)의 토폴로지 정렬은 정점 u가 순서에서 v 앞에 오는 모든 방향 모서리 uv에 대해 정점의 선형 정렬입니다. 그래프가 DAG가 아닌 경우 그래프에 대한 Topological Sorting이 불가능합니다. 함수 및 의사코드 Begin function topologicalSort(): a) Mark the current node as visited. b) Recur for all the vertices adjacent
Hamiltonian 주기는 Hamiltonian Path의 마지막 정점에서 첫 번째 정점까지의 모서리(그래프에서)가 있는 것과 같은 Hamiltonian Path입니다. 무방향 그래프에서 그래프의 각 꼭짓점을 정확히 한 번만 방문하는 경로입니다. 기능 및 목적: Begin 1.function isSafe() is used to check for whether it is adjacent to the previously added vertex and already not added. 2.
주어진 방향 그래프에 대한 Weakly 또는 Strongly Connected는 DFS를 사용하여 찾을 수 있습니다. 이 문제의 C++ 프로그램입니다. 사용된 기능 Begin Function fillorder() = fill stack with all the vertices. a) Mark the current node as visited and print it b) Recur for all the vertices adjacent to this vertex &nb
색 지수는 주어진 그래프의 가장자리 색상에 필요한 최대 색상 수입니다. 순환 그래프의 색색인을 찾는 C++ 프로그램입니다. 알고리즘 Begin Take the input of the number of vertices ‘n’ and number of edges ‘e’. Take the input of ‘e’ vertex pairs for the ‘e’ edges in the graph in edge[][
그래프의 Articulation Points(또는 Cut Vertex)는 이를 제거하면(그리고 이를 통과하는 모서리) 그래프의 연결이 끊어지면 점이 됩니다. 연결되지 않은 무방향 그래프의 접합점은 연결된 구성 요소의 수를 증가시키는 정점 제거입니다. 알고리즘 Begin We use dfs here to find articulation point: In DFS, a vertex w is articulation point if one of the following two conditions
이 프로그램에서는 주어진 그래프에서 DFS를 사용하여 두 노드 사이에 경로가 존재하는지 확인할 수 있습니다. 알고리즘 Begin function isReach() is a recursive function to check whether d is reachable to s : A) Mark all the vertices as unvisited. B) Mark the current node as visited and enqueue it and it will be us