_pimpl->_connections
是一个std::map
所以它的元素是std::pair<KeyType, gcl::SectionConnectionT*>
我想使用一个谓词gcl::SectionConnectionT::NotConnectedTo(r)
来过滤掉不必要的值。但如果我使用
std::remove_copy_if(it_pair.first, it_pair.second, std::back_inserter(sectionConnections), gcl::SectionConnectionT::NotConnectedTo(r));
它尝试将 插入pair
向量中。但是向量的类型是<gcl::SectionConnectionT*>
一些谷歌搜索带我去的地方transform_iterator
,我无法理解如何理解。我是这样用的。但得到编译错误
std::pair<CollectionT::iterator, CollectionT::iterator> it_pair = _pimpl->_connections.equal_range(l);
std::vector<gcl::SectionConnectionT*> sectionConnections;
std::remove_copy_if(it_pair.first, it_pair.second, boost::make_transform_iterator(std::back_inserter(sectionConnections), util::shorthand::pair_second()), gcl::SectionConnectionT::NotConnectedTo(r));