HOWTO · C++

클래스의 C++ 도우미 함수

이 자습서에서는 C++의 클래스에서 도우미 함수를 구현하는 방법을 보여 줍니다.

이 자습서에서는 C++의 클래스에서 도우미 함수를 구현하는 방법을 보여 줍니다.

클래스의 C++ 도우미 함수

도우미 함수는 최종 사용자가 인스턴스화하지 않지만 내부적으로 다른 클래스 내에서 사용되는 유용한 기능을 제공하는 함수입니다. 함수가 클래스의 멤버가 아니라 다른 클래스인 경우 C++ 프로그램은 다른 목적으로 데이터를 인쇄하거나 사용하는 도우미 함수를 만듭니다.

도우미 함수는 일반적으로 클래스의 작성자가 제공하며 클래스의 표현에 직접 액세스할 필요가 없습니다. 도우미 함수를 구현하는 C++의 예를 살펴보겠습니다.

#include <iostream>
#include <vector>

template <typename Delftstack>
void print(const std::vector<Delftstack>& DemoVec) {
  typename std::vector<Delftstack>::const_iterator x;
  for (x = DemoVec.begin(); x != DemoVec.end(); x++) std::cout << *x << "  ";
  std::cout << std::endl;
}

int main() {
  std::vector<int> vector1, vector2;
  vector1.assign(7, 3);
  vector2.assign(7, 6);

  std::cout << "Vector 1 : ";
  print(vector1);

  std::cout << "Vector 2 : ";
  print(vector2);

  if (vector1 == vector2)
    std::cout << "vector 1 and Vector 2  are lexicographically equal!"
              << std::endl;

  else
    std::cout << "vector 1 and vector 2 are lexicographically not equal!"
              << std::endl;

  if (vector1 > vector2)
    std::cout << "vector 1 is lexicographically greater than vector 2!"
              << std::endl;

  else
    std::cout << "vector 2 is lexicographically greater than vector 1!"
              << std::endl;
}

위의 코드는 클래스의 헬퍼 함수를 사용하여 두 벡터를 비교합니다. 두 벡터가 같지 않을 때 이 코드의 출력은 다음과 같습니다.

Vector 1 : 3  3  3  3  3  3  3
Vector 2 : 6  6  6  6  6  6  6
vector 1 and vector 2 are lexicographically not equal !
vector 2 is lexicographically greater than vector 1 !

그리고 벡터가 같으면 벡터 값을 다음과 같이 변경합니다.

vector1.assign(7, 3);
vector2.assign(7, 6);

에게:

vector1.assign(7, 3);
vector2.assign(7, 3);

이 경우 출력은 다음과 같습니다.

Vector 1 : 3  3  3  3  3  3  3
Vector 2 : 3  3  3  3  3  3  3
vector 1 and Vector 2  are lexicographically equal!
vector 2 is lexicographically greater than vector 1!

마지막 줄은 else 조건에서 왔기 때문에 무시할 수 있습니다. 비균등 시나리오에 대해 설정됩니다. 예를 들어 값이 다음과 같은 경우:

vector1.assign(7, 6);
vector2.assign(7, 3);

이러한 값의 출력은 다음과 같습니다.

Vector 1 : 6  6  6  6  6  6  6
Vector 2 : 3  3  3  3  3  3  3
vector 1 and vector 2 are lexicographically not equal!
vector 1 is lexicographically greater than vector 2!