gpt4 book ai didi

C++,std::pair 中的模板 T

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

我想使用以下结构模板化“第一”类型的 std::pair

template <typename T>
struct TPair
{
typedef std::pair <T, short> Type;
};

并创建此类对的 vector 。

template <typename T>
struct TPairs
{
typedef std::vector <TPair <T> > Type;
};

但是这段代码似乎被搞砸了,很不舒服:

TPair <double> ::Type my_pair (1.0, 0 ); //Create pairs
TPair <double> my_pair2 (1.0, 0 ); //Create object, needs a constructor

TPairs <double> ::Type pairs; //Create vector
TPairs <double> pairs2; //Create object

pairs.push_back(my_pair); //Need a constructor
pairs2.push_back(my_pair); //No push_back method for the structure...
....

有没有更简单舒服的方案?

最佳答案

听起来你想要一个“template alias”,它显然是用 C++11 添加到标准中的。您的情况的语法类似于:

template <typename T>
using TPair = std::pair<T,short>;

template <typename T>
using TPairs = std::vector<TPair<T>>;

[免责声明:我还没有尝试过这个,所以这可能是胡说八道。]

关于C++,std::pair <T, shirt> 中的模板 T,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8960687/

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