我如何支持内部列表的基于范围的语句? (c++)
How can I support Range-based for Statement for an internal list? ( c++ )
我们有一些广泛使用的 classes 包装内部 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 在标记为重复的问题底部提供的答案。
此外,由于我在一个 class 中,模板包装了一个内部列表,所以有一点扭曲。
这似乎有效:
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();
}
我们有一些广泛使用的 classes 包装内部 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 在标记为重复的问题底部提供的答案。
此外,由于我在一个 class 中,模板包装了一个内部列表,所以有一点扭曲。
这似乎有效:
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();
}