gpt4 book ai didi

c++ - 迭代 C++ 列表中一对(或元组)的特定项

转载 作者:太空狗 更新时间:2023-10-29 20:10:27 25 4
gpt4 key购买 nike

假设我有这样的东西:

using MyList = std::list<std::pair<string,int>>;

我怎样才能让迭代器只指向列表的字符串(或整数)?我有一个函数,我想传递 something.begin() 和 something.end() 这只是整数。有没有简单/聪明/巧妙的方法来做到这一点?也可以用元组来完成吗?

最佳答案

有Boost的transform_iterator

using MyList = std::list<std::pair<string,int>>;

MyList l{ {"Hello", 42}, {"World", 0} };

auto tr = [](auto const& p){
return p.first;
};

copy(boost::make_transform_iterator(l.begin(), tr),
boost::make_transform_iterator(l.end(), tr),
ostream_iterator<string>(cout, ", "));

live example

关于c++ - 迭代 C++ 列表中一对(或元组)的特定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39962257/

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