gpt4 book ai didi

c++ - 从元组中提取多种类型

转载 作者:太空狗 更新时间:2023-10-29 20:35:52 25 4
gpt4 key购买 nike

这应该很明显,是否有一些简短的语法来获取子元组?

类似的东西:

std::tuple<std::string, double, int> myTuple;
std::tuple<std::string, int> subTuple = std::get<std::string, int>(myTuple);

最佳答案

您需要制作自己的模板函数,下面的实现需要 C++14(因为它需要 std::get<T>,您可以自己在 C++11 中实现):

template<typename... R, typename ...Args>
std::tuple<R...> sub_tuple(const std::tuple<Args...>& original) {
return std::make_tuple(std::get<R>(original)...);
}

int main()
{
std::tuple<std::string, double, int> myTuple = std::make_tuple("Hello", 1201.0, 51);
std::tuple<std::string, int> subTuple = sub_tuple<std::string, int>(myTuple);
std::cout << std::get<0>(subTuple) << " " << std::get<1>(subTuple);
}

注意:这将为原始元组中的每个元素创建一个拷贝

关于c++ - 从元组中提取多种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40583755/

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