이 섹션에서는 C++의 isnormal() 함수를 볼 것입니다. 이 함수는 cmath 라이브러리에 있습니다. 이 기능은 숫자가 정상인지 여부를 확인하는 데 사용됩니다. 비정규로 간주되는 숫자는 0, 무한대 또는 NAN입니다. 이 함수는 float, double 또는 long double 값을 인수로 사용합니다. 숫자가 정상이면 1을 반환하고 그렇지 않으면 0을 반환합니다. 예시 #include<iostream> #include<cmath> using namespace std; int main() {  
여기서 우리는 C++에서 자신의 할당 연산자를 생성해야 할 때를 볼 것입니다. 클래스에 포인터가 없으면 할당 연산자와 복사 생성자를 만들 필요가 없습니다. C++ 컴파일러는 각 클래스에 대해 복사 생성자와 할당 연산자를 생성합니다. 연산자가 충분하지 않으면 자체 할당 연산자를 만들어야 합니다. 예시 #include<iostream> using namespace std; class MyClass { //no user defined assignment operator or copy constructor is present &
여기에서 우리는 C++에서 Shuffle과 random_shuffle을 볼 것입니다. random_shuffle을 먼저 봅시다. [왼쪽, 오른쪽] 범위의 요소를 무작위로 재배열하는 데 사용됩니다. 이 기능은 각 요소의 위치를 무작위로 선택한 위치의 위치와 무작위로 교환합니다. 모든 경우에 어떤 요소가 사용되는지 알려주는 임의 생성기 기능을 제공할 수 있습니다. 일부를 제공하지 않으면 자체 임의 생성기 기능을 사용합니다. 예시 #include 네임스페이스 std;int myRandomGenerator(int j) { return
여기서 우리는 C++에서 Bind 함수와 자리 표시자를 볼 것입니다. 때때로 우리는 필요에 따라 일부 기능의 작동을 조작해야 합니다. 일부 기본 매개변수를 사용하여 조작의 본질을 얻을 수 있습니다. C++11에는 bind 함수라는 새로운 기능이 하나 추가되었습니다. 이것은 우리가 좀 더 쉬운 방식으로 그러한 조작을 수행하는 데 도움이 됩니다. 이러한 기능을 사용하려면 헤더 파일을 사용해야 합니다. 자리 표시자를 사용하여 함수를 바인딩하면 원하는 출력에 따라 함수를 수정하기 위해 위치와 인수 수를 결정하는 데 도움이 됩니다.
참조 지역에 따라 검색, 메모리 액세스 패턴에 따라 데이터 요소가 재할당됩니다. 여기서 선형 검색 방법은 요소를 검색하는 데 사용됩니다. 알고리즘 Begin int find(int *intarray, int n, int item) intialize comparisons = 0 for i = 0 to n-1 Increase comparisons if(item == intarray[i]) &n
이것은 주어진 모서리 e에 대해 무방향 랜덤 그래프를 생성하는 C++ 프로그램입니다. 이 알고리즘은 기본적으로 큰 네트워크에서 구현되며 이 알고리즘의 시간 복잡도는 O(log(n))입니다. 알고리즘 Begin Function GenerateRandomGraphs(), has ‘e’ as the number edges in the argument list. Initialize i = 0 while(i < e) &n
C++ 함수 std::algorithm::lexicographical_compare()는 한 범위가 다른 범위보다 사전순으로 작은지 여부를 테스트합니다. 사전순 비교는 사전에서 단어를 알파벳순으로 정렬하는 데 일반적으로 사용되는 비교 유형입니다. 선언 템플릿 bool lexicographical_compare(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2); 알고리즘 Begin result =
텍스트 모드 바이너리 모드 텍스트 모드에서 다양한 문자 번역이 수행됩니다. \r+\f는 \n으로 변환됩니다. 바이너리 모드에서 이러한 번역은 수행되지 않습니다. 파일에 쓰기: ofstream of ( file.txt); 또는 업스트림; ofs.open(파일.txt); 파일에 쓰기: ofstream ofs(file.txt,ios::binary); 또는 업스트림; ofs.open(파일.txt, iOS::바이너리); 파일 끝에 텍스트를 추가하려면: 오프스트림(file.txt,ios::app); 또는 업스트림;
C++에서 파일의 크기를 얻으려면 먼저 파일을 열고 끝까지 찾습니다. tell()은 스트림의 현재 위치를 알려줄 것이며, 이는 파일의 바이트 수가 될 것입니다. 예시 #include<iostream> #include<fstream> using namespace std; int main() { ifstream in_file("a.txt", ios::binary); in_file.seekg(0, ios::end); int fil
다음은 C++에서 파일 내용을 isstringstream으로 읽는 C++ 프로그램입니다. 예시 #include <fstream> #include <sstream> #include<iostream> using namespace std; int main() { ifstream is("a.txt", ios::binary ); // get length of file: is.seekg (0, std::ios::end); &
다음은 C++ ifstream을 사용하여 텍스트 파일에서 정수 읽기의 예입니다. 예시 #include <fstream> #include<iostream> using namespace std; int main() { //initialie the array size int arr[30]; ifstream is("a.txt"); int cnt= 0; int x;  
인덱스로 C++ std::vector<>에서 요소 제거는 다음과 같은 방법으로 수행할 수 있습니다. - 예시 #include<iostream> #include<vector> using namespace std; int main() { vector<int> v; //declare vector //insert elements into vector v.push_back(-10); v.push_back(7); &nb
포인터는 null 매개변수를 수신할 수 있지만 참조는 수신할 수 없습니다. 객체 없음을 전달하려는 경우에만 포인터를 사용할 수 있습니다. 명시적으로 포인터를 전달하면 개체가 참조로 전달되는지 호출 사이트에서 값으로 전달되는지 확인할 수 있습니다. 다음은 포인터로 전달하고 참조로 전달하는 간단한 예입니다 - 포인터로 전달 예 #include <iostream> using namespace std; void swap(int* a, int* b) { int c = *a; *a=
C++에서 클래스 또는 구조체의 멤버 함수를 처리할 때 함수 포인터는 개체 포인터 또는 this 호출을 사용하여 호출됩니다. 유형 안전하므로 해당 유형의 포인터를 사용하여 해당 클래스(또는 파생 상품)의 멤버만 호출할 수 있습니다. 예시 #include <iostream> using namespace std; class AB { public: int sub(int a, int b) { return a-
포인터 포인터는 변수의 주소를 저장하는 데 사용됩니다. 구문 Type *pointer; 초기화 Type *pointer; Pointer = variable name; 함수 포인터는 변수의 주소를 저장하는 데 사용됩니다. 포인터에는 null 값이 할당될 수 있습니다. 포인터는 참조로 전달될 수 있습니다. 포인터는 스택에 자체 메모리 주소와 크기를 갖습니다. 예시 #include <iostream> using namespace std; int main() { // A normal integer v
C++의 RAID RAII(Resource Acquisition Is Initialization)는 리소스의 수명 주기를 제어하는 C++ 기술입니다. 클래스 변형이며 개체 수명과 관련이 있습니다. 여러 리소스를 클래스로 캡슐화하여 개체 생성 시 생성자에서 리소스 할당을 수행하고 개체 파괴 시 소멸자에서 리소스 할당 해제를 수행합니다. 리소스는 개체가 살아 있을 때까지 유지됩니다. 예시 void file_write { Static mutex m; //mutex to protect file access
범위 확인 연산자는 정적 또는 클래스 멤버에 액세스하는 데 사용되는 반면 이 포인터는 동일한 이름의 로컬 변수가 있는 경우 개체 멤버에 액세스하는 데 사용됩니다. 범위 확인 연산자 예시 #include<iostream> using namespace std; class AB { static int x; public: // Local parameter 'x' hides class member
포인터 포인터 변수는 변수의 주소를 저장하는 데 사용됩니다. 구문 Type *pointer; 초기화 Type *pointer; Pointer=variable name; 참조 매개변수를 참조로 선언하면 기존 매개변수의 대체 이름이 됩니다. 구문 Type &newname=existing name; 초기화 Type &pointer; Pointer=variable name; 포인터와 참조 매개변수의 주요 차이점은 다음과 같습니다. - 참조는 다른 이름의 기존 변수를 참조하는 데 사용되는 반면 포인터는 변수의 주소를
포인터가 가리키는 개체가 아닌 포인터를 수정해야 하는 경우 참조로 포인터를 전달합니다. 다음은 참조로 포인터를 전달하는 방법의 예입니다 - 예시 #include <iostream> using namespace std; void Decrement( int*& d ) { --d; } int main( void ) { int a = 26; int* ptr = &a; // pointer to pass // print be
스택 - 함수 내부에 선언된 모든 변수는 스택에서 메모리를 차지합니다. 따라서 함수 내부의 모든 지역 변수는 스택에 있습니다. 힙 − 프로그램에서 사용하지 않는 메모리로 프로그램 실행 시 동적으로 메모리를 할당하는데 사용할 수 있습니다. 따라서 무언가를 선언한 함수보다 오래 유지하려면 힙에 할당해야 합니다. 예시 int main() { int a; //get memory allocated on stack. int *ptr=new int[7]; //memory for 7 integers