通过c ++中的stl容器迭代?

时间:2017-06-15 03:57:05

标签: c++ list vector stl

我无法遍历可能包含任意数量数据结构的模板(列表,向量等)

使用给定的模板有一种可靠的方法来迭代这个吗?我在声明类型时遇到问题,是的,我尝试过“auto”和“auto&”这根本不起作用。谢谢指点。

template<typename ElementType, typename ContainerType> 
ElementType findMax(ContainerType& container) {
for (typeid(container).name i = container.begin(); i !=container.end(); ++i){
    cout << i;
}
return 10;
}

1 个答案:

答案 0 :(得分:2)

让它自动化。

for (auto i = container.begin(); i != container.end(); ++i)

如果您没有C ++ 11,则可以在容器中使用typedef。

for (typename ContainerType::iterator i = container.begin(); i != container.end(); ++i)

请注意,代码并不关心ContainerType是数组的情况。

另外,我认为你想打印容器的内容,而不是迭代器本身。

    cout << *i;

(live example)