大步使用 std::find 并且只检查结构中的特定成员

Use std::find with stride and only check specific member in struct

layers存储了很多成员,比如每个元素的名字:

std::vector<vk::LayerProperties> layers = vk::enumerateInstanceLayerProperties()

layerNames只存储每层名称:

std::vector<const char*> layerNames(layers.size());

我将每个 layer 元素的名称成员复制到 layerNames, 然后在 layerNames.

上使用 std::find

有没有办法直接在layers上使用std::find,迭代时使用stride只检查name成员?

您可能正在寻找这样的东西:

auto it = std::find_if(layers.begin(), layers.end(),
  [&name_to_look_for](const vk::LayerProperties& layer) {
    return layer.name == name_to_look_for;
  }
);