如何从对象中获取STL容器的类型?例如,我有一个 container
变量,我知道它是 std::vector<some type>
.我需要使用迭代器迭代容器。有没有办法在不知道容器类型的情况下声明迭代器?
我当然可以从代码中获取类型,但我很想在不使用类型的情况下做到这一点。我也没有使用 C++11。
最佳答案
C++11 有一些不错的简单方法:
auto it = container.begin();
或等效地:
decltype(container.begin()) it = container.begin();
甚至:
decltype(container)::iterator it = container.begin();
尽管如此,即使您不能使用类型推导,您也不应处于无法以某种形式(可能涉及模板参数)键入类型的情况。如果编译器知道它是什么类型,那么您也知道。
关于c++ - 如何从对象中获取STL容器的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15550682/