【发布时间】:2013-03-21 14:45:30
【问题描述】:
如何从对象中获取 STL 容器的类型?例如,我有一个container 变量,我知道它是std::vector<some type>。我需要使用迭代器迭代容器。有没有办法在不知道容器类型的情况下声明迭代器?
我当然可以从代码中获取类型,但我很想在不使用类型的情况下做到这一点。我也没有使用 C++11。
【问题讨论】:
-
你能展示一些你使用“某种类型”的
std::vector的代码吗? -
您能否展示一些代码来说明您遇到的问题。如果您有一个接受
container作为参数的函数,则必须包含该类型——除非它是一个模板,但即使在这种情况下,您也可以使用 SFINAE 来获取您需要的内容。 -
编译器知道容器的类型,你为什么不知道?
-
container变量是模板参数吗?这就是你不知道具体类型的原因吗? -
这就是为什么
auto被添加到C++11!