1
우리가 내부 표준 : : 목록을 포장 일부 널리 사용되는 클래스내부 목록에 대한 명세서 기반 범위를 어떻게 지원할 수 있습니까? (C++)
template <class COLL_TYPE>
class OurColl
{
...
private:
std::list<COLL_TYPE> *m_pList;
내가 루프를 기반으로 범위를 사용할 수 있도록하고 싶습니다
:
OurColl<int> listInts;
for (int x : listInts)
{
}
이 것을 밑에있는 m_pList를 반복해야한다.
나는이 질문이 복제본으로 표시된 질문 맨 아래의 Chris Redford가 제공 한 답변에 가장 가깝기 때문에 충분히 다른 것으로 느낍니다.
또한 내부 목록을 래핑하는 템플릿이있는 클래스에 있기 때문에 비틀어 짐이 조금 있습니다.
서하십시오 내 호기심을,하지만 당신은 왜리스트에 * 포인터 *이 있습니까? 포인터가없는 경우에는 [0의 규칙] (http://en.cppreference.com/w/cpp/language/rule_of_three#Rule_of_zero)을 통해 생활 할 수 있으며, 이로 인해 평생 동안 (그리고 클래스) 더 간단 해. –
중요한 부분은 forward iterable 인 객체를 반환하는'begin'과'end' 함수가 필요하다는 것입니다. 이것은 중복 된 상태의 답변을 (아마도 오랜 바람에) 말한 것입니다. 이 경우 가장 간단한 방법은 래핑 된리스트 반복자를 사용하는 것입니다. –
예제 코드가 제대로 보이나요? 이것은 우리 프로젝트에서 널리 사용되는 아주 오래된 코드입니다. 사용하기가 좀 더 쉬워지기를 바랍니다. – Derek