gpt4 book ai didi

c++ - 有条件地将映射键复制到 vector

转载 作者:行者123 更新时间:2023-11-28 03:48:10 26 4
gpt4 key购买 nike

我有一个 map 容器。我想将其所有带有用户指定首字母的键复制到一个 vector 中。如何以有效的方式做到这一点?谢谢!

std::map(std:string, size_t) myMap;
myMap.insert(std:make_pair("Ace", 11);
myMap.insert(std:make_pair("Ape", 12);
myMap.insert(std:make_pair("Age", 13);
myMap.insert(std:make_pair("Beat", 21);
myMap.insert(std:make_pair("Boat", 22);
myMap.insert(std:make_pair("Boss", 23);
myMap.insert(std:make_pair("Coat", 31);
myMap.insert(std:make_pair("Cost", 32);
myMap.insert(std:make_pair("Cast", 33);

例如,如果我想从 myMap 中提取所有键以“Bo”开头的元素并将满意的结果填充到 myVec,myVec 将具有以下元素:

Boat
Boss

最佳答案

为简洁起见省略了声明:

begin = myMap.lower_bound("Bo");
end = std::find_if(begin, myMap.end(), first_does_not_begin_with("Bo"));
for (i=begin; i!=end; ++i)
myVec.push_back(i->first);

您可以实现 first_does_not_begin_with 仿函数类,对吗?它的运算符(operator)应该有这个签名:

bool operator()(std::pair<const std::string, size_t> const &);

关于c++ - 有条件地将映射键复制到 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6715490/

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