大步使用 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;
}
);
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;
}
);