C++ 转换标准::向量<;std::pair<;常数K,V>*&燃气轮机;到std::vector<;std::pair<;常数K,V>&燃气轮机;
我想将C++ 转换标准::向量<;std::pair<;常数K,V>*&燃气轮机;到std::vector<;std::pair<;常数K,V>&燃气轮机;,c++,c++11,vector,stl,C++,C++11,Vector,Stl,我想将std::vector转换为std::vector。但是,正如您所知,由于对的原因,我无法分配 我想可能有办法利用它 template< class InputIt > void assign( InputIt first, InputIt last ); template 无效分配(先输入,后输入); 让这一切发生。然而,我找不到出路 寻求建议。谢谢 只有在尝试分配元素或调用某些函数(如)时,const才是一个问题。但一切都会好起来的 一个解决方案: template &
std::vector
转换为std::vector
。但是,正如您所知,由于对
的原因,我无法分配
我想可能有办法利用它
template< class InputIt >
void assign( InputIt first, InputIt last );
template
无效分配(先输入,后输入);
让这一切发生。然而,我找不到出路
寻求建议。谢谢 只有在尝试分配元素或调用某些函数(如)时,
const
才是一个问题。但一切都会好起来的
一个解决方案:
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;
}
模板
标准::向量定义向量元素(常数标准::向量&v){
std::向量v2;
用于(元素*e:v)
v2.推回(*e);
返回v2;
}
修改了问题。在我看来,向量应该是合法的,因为我的编译器不会抱怨。