gpt4 book ai didi

c++ - 从对 vector 中按值删除元素

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:39:21 34 4
gpt4 key购买 nike

C++20 起,我们可以通过执行以下操作按值从 vector 中删除元素:

std::vector<int> v = {10,20,30,40,50};
std::erase(v,30);

这真的很方便,更不用说还有 std::erase_if

但是,如果我们有一个对 vector 并且我们想要删除,只有当对的 second 值匹配时怎么办?

std::pair<int, std::string> foo = std::make_pair(1,"1");
std::pair<int, std::string> foo2 = std::make_pair(2,"2");

std::vector< std::pair<int, std::string> > v;
v.push_back(foo);
v.push_back(foo2);

std::erase(v, make_pair(1,"2")); //This is not going to work!

那么,有没有办法从成对 vector 中删除 second 值的元素?

最佳答案

它会是这样的:

std::erase_if(v, [](const auto& p){ return p.second == "2"; });

Demo

关于c++ - 从对 vector 中按值删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57306199/

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