网站优化

网站优化

Products

当前位置:首页 > 网站优化 >

阅读本文,轻松掌握用map获取所有value的秘诀!

GG网络技术分享 2025-11-15 13:41 1


啥是map?为啥我们要获取value?

哇塞,你们晓得map吗?就像我们的书架一样,个个书dou有个位置,这玩意儿位置就像map的key,而书的名字就像value。我们要获取value,就是想晓得个个位置上的书叫啥名字。

用Boost库的indirect_iterator获取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函数, 让获取value变得轻巧松

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; });
 

循环遍历, Zui原始的方法

当然我们也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

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, 又迅速又方便

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