我想将std::vector<std::pair<const K, V>*>
转换为std::vector<std::pair<const K, V>>
。但是,正如您所知,由于pair<const K, V>
我无法分配。
我想可以在某种程度上利用
template< class InputIt >
void assign( InputIt first, InputIt last );
实现这一目标。但是,我找不到出路。
寻求建议。谢谢!
答案 0 :(得分:0)
如果您尝试分配元素或调用insert
等特定功能,则const
只是一个问题。但push_back
和emplace_back
会没问题。
一个解决方案:
template <typename Elem>
std::vector<Elem> deref_vec_elems( const std::vector<Elem*>& v ) {
std::vector<Elem> v2;
for ( Elem* e : v )
v2.push_back( *e );
return v2;
}