gpt4 book ai didi

c++ - 如何从 STL 容器实例中获取元素类型?

转载 作者:IT老高 更新时间:2023-10-28 22:26:12 27 4
gpt4 key购买 nike

我知道 value_type、key_type ......但它们对类型而不是实例进行操作。我试过了像这样的东西:

std::set<uint64_t> mySet;   

decltype (mySet)::value_type pos;

但它不起作用。

编辑:我使用 VS 2010。

EDIT2:这段代码的目的是获取一个类型来将其提供给 boost::lexical_cast<>有没有一种解决方法可以做到这一点?我想要这样的东西:

   mySet.insert(boost::lexical_cast<decltype(mySet)::value_type>(*it));
// it is a iterator in vector of strings

EDIT3:这可行:

mySet.insert(boost::lexical_cast<decltype(mySet)::value_type>(*it));

最佳答案

decltype (mySet)::value_type 是正确的。确保在编译器中启用了 C++11 模式。如果你有,那么它是一个编译器错误。

一种可能的解决方法是使用身份元功能:

template <typename T>
struct identity { typedef T type; };

identity<decltype(mySet)>::type::value_type pos;

关于c++ - 如何从 STL 容器实例中获取元素类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12391814/

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