Products
GG网络技术分享 2025-11-15 13:41 1
哇塞,你们晓得map吗?就像我们的书架一样,个个书dou有个位置,这玩意儿位置就像map的key,而书的名字就像value。我们要获取value,就是想晓得个个位置上的书叫啥名字。

Ru果我们用的map的value是指针类型,就Neng用Boost库里的indirect_iterator来帮我们找到全部的value。就像拿着地图去找宝藏一样,我们用这玩意儿工具就Neng找到全部的宝藏。不过想起来哦,找到宝藏后要优良优良保管,不要记不得释放内存哦。
#include
std::map my_map = {{1, std::make_unique}, {2, std::make_unique}};
std::vector values;
std::transform), boost::make_indirect_iterator), std::back_inserter, { return *str_ptr; });
transform函数就像是帮我们拿东西的细小助手,我们Neng让它在map中帮忙找到全部的value。用这玩意儿函数,我们就不需要自己一个一个地去拿,它会帮我们搞定,真实是太方便了!
// 用transform函数获取全部value
std::map my_map = {{1, "Hello"}, {2, "World"}};
std::vector values);
std::transform, my_map.end, values.begin, { return pair.second; });
当然我们也Neng用Zui原始的方法,就是用循环一个一个地去拿value。虽然有点磨蹭,但是hen轻巧松,就像我们细小时候玩游戏一样,一个一个地找宝藏。
// 用循环遍历获取全部value
std::map my_map = {{1, "Hello"}, {2, "World"}};
std::vector values;
for {
values.push_back;
}
C++20出来了一个新鲜朋友,叫std::ranges::views::values。这玩意儿朋友超级厉害,用它Neng轻巧松地拿到全部的value,而且速度还hen迅速,就像有了超Neng力一样。
// 用C++20中的std::ranges::views::values获取value
std::map my_map = {{1, "Hello"}, {2, "World"}};
std::vector values = my_map | std::ranges::views::values;
Boost库里还有一个优良用的工具,叫transform_values。它不仅Neng帮我们拿到全部的value,而且速度还hen迅速,就像有个超级迅速递员一样,送东西又迅速又优良。
// 用boost库的transform_values函数获取value
std::map my_map = {{1, "Hello"}, {2, "World"}};
std::vector values = my_map | boost::adaptors::map_values;
优良了今天我们学会了怎么用不同的方法去获取map中的全部value。不管用哪种方法,dou是为了让我们的编程生活变得geng加轻巧松和愉迅速。希望你们dou学会了以后用map的时候,Neng够轻巧松地拿到你想要的value哦!
Demand feedback