クラスの C++ ヘルパー関数

Sheeraz Gul 2023年10月12日
クラスの 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;
}

上記のコードは、クラスでヘルパー関数を使用して 2つのベクトルを比較します。 2つのベクトルが等しくない場合のこのコードの出力は次のとおりです。

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!
著者: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook