Используйте std :: find с шагом и проверяйте только указанный c член в структуре - PullRequest
1 голос
/ 31 января 2020

layers хранит множество элементов, как и имя каждого элемента:

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

layerNames хранит только имя каждого слоя:

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

Я копирую имя член из каждого элемента layer в layerNames, а затем используйте std::find в layerNames.

Есть ли способ использовать std::find в layers напрямую и использовать шаг для проверки только имя члена при итерации?

1 Ответ

1 голос
/ 31 января 2020

Возможно, вы ищете что-то вроде этого:

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