我们有一些广泛使用的类包装内部std :: list
template <class COLL_TYPE>
class OurColl
{
...
private:
std::list<COLL_TYPE> *m_pList;
我希望能够使用基于for循环的范围:
OurColl<int> listInts;
for ( int x : listInts )
{
}
这必须迭代底层的m_pList。
我觉得这个问题不同,因为它最接近Chris Redford在标记为重复的问题底部提供的答案。
此外,由于我在一个包含内部列表的模板的类中,因此有点麻烦。
答案 0 :(得分:0)
这似乎有效:
typename std::list<COLL_TYPE>::iterator begin()
{
return m_pList->begin();
}
typename std::list<COLL_TYPE>::iterator end()
{
return m_pList->end();
}
typename std::list<COLL_TYPE>::const_iterator begin() const
{
return m_pList->begin();
}
typename std::list<COLL_TYPE>::const_iterator end() const
{
return m_pList->end();
}