相关疑难解决方法(0)

更改给定 STL 容器的 value_type

假设我有一个 STL 容器类型(不是对象),例如vector<A>. 现在是这样value_typeA所以我想把它改成B

基本上,我想要一个这种形式的类模板,或其变体:

template<typename container, typename new_value_type>
struct change_value_type
{
    typedef /*....*/  new_container;
};
Run Code Online (Sandbox Code Playgroud)

这样我就可以按以下方式使用它:

typename change_value_type<vector<A>, B>::new_container  vectorOfB; 
vectorOfB.push_back(B());
vectorOfB.push_back(B());
vectorOfB.push_back(B());
//etc
Run Code Online (Sandbox Code Playgroud)

意思是,new_containervector<B>

是否可以?

c++ containers templates stl metaprogramming

5
推荐指数
2
解决办法
1150
查看次数

标签 统计

c++ ×1

containers ×1

metaprogramming ×1

stl ×1

templates ×1