gpt4 book ai didi

c++ - 从 Map 中获取 Value 中具有给定值的元素

转载 作者:行者123 更新时间:2023-11-30 03:31:33 26 4
gpt4 key购买 nike

我有一个定义为 std::map<std::string, textInfo> tempMap; 的 map textInfo 类有一些属性为 textsize , textcolor , textfont ETC..我想从此 map 中选择一个与 textInfo 中属性的给定值匹配的项目类。

例如如果 map 包含

<"A",textInfo("10","Red","Verdana")>
<"B",textInfo("12","Green","Timesnewroman")>
<"C",textInfo("11","Blue","Cambria")>

我想选择在其 textfont 属性中包含“Cambria”的项目。 <"C",textInfo("11","Blue","Cambria")>

最佳答案

std::find_if应该可以满足您的需求。

示例程序:

#include <iostream>
#include <map>
#include <algorithm>

struct textInfo
{
std::string textsize;
std::string textcolor;
std::string textfont;
};

int main()
{
std::map<std::string, textInfo> m =
{
{"A", {"10","Red","Verdana"}},
{"B", {"12","Green","Timesnewroman"}},
{"C", {"11","Blue","Cambria"}}
};

auto iter = std::find_if(m.begin(),
m.end(),
[](std::pair<std::string, textInfo> const& item)
{ return (item.second.textfont == "Cambria");});
if ( iter != m.end() )
{
auto& item = iter->second;
std::cout << item.textsize << ", " << item.textcolor << ", " << item.textfont << std::endl;
}
}

输出:

11, Blue, Cambria

关于c++ - 从 Map 中获取 Value 中具有给定值的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44150208/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com