C++でベクトル内のオブジェクトのメンバ変数を検索する方法


  1. 線形検索: ベクトル内の各オブジェクトを順番にチェックし、目的のメンバ変数の値を見つける方法です。以下は例です。
struct MyObject {
  int memberVariable;
  // 他のメンバ変数やメソッドがあるかもしれません
};
std::vector<MyObject> objects;
// objectsにオブジェクトを追加するコードがここにあるとします
int targetValue = 42;
MyObject* foundObject = nullptr;
for (const auto& obj : objects) {
  if (obj.memberVariable == targetValue) {
    foundObject = &obj;
    break;
  }
}
if (foundObject != nullptr) {
  // 目的のオブジェクトが見つかった場合の処理
} else {
  // 目的のオブジェクトが見つからなかった場合の処理
}
  1. アルゴリズムを使用した検索: C++のアルゴリズムライブラリを使用して、ベクトル内で目的のメンバ変数の値を検索することもできます。以下は例です。
#include <algorithm>
struct MyObject {
  int memberVariable;
  // 他のメンバ変数やメソッドがあるかもしれません
};
std::vector<MyObject> objects;
// objectsにオブジェクトを追加するコードがここにあるとします
int targetValue = 42;
auto foundObject = std::find_if(objects.begin(), objects.end(), [targetValue](const MyObject& obj) {
  return obj.memberVariable == targetValue;
});
if (foundObject != objects.end()) {
  // 目的のオブジェクトが見つかった場合の処理
} else {
  // 目的のオブジェクトが見つからなかった場合の処理
}

以上の方法を使用すると、ベクトル内のオブジェクトのメンバ変数を効率的に検索することができます。適切な方法を選択し、問題に合わせてコードを調整してください。