C++ (Qt)struct CDataLookup { QList <CElement> mData; // исходный контейнер QList <CElement *> mLookup; // указатели отсортированы по атрибуту (цвету)}; // использованиеvoid CDataLookup::ScanByColor( CElement & elem ){ for (int i = elem.mLookupIndex; i < mLookup.size(); ++i) { if (mLookup[i]->mColor != elem.mColor) break; DoSomething(mLookup[i]); // указатель на элемент с тем же цветом что и elem }}
C++ (Qt)struct CDataLookup { QList <CElement> mData; QList <CElement *> mLookup;}; void CDataLookup::ScanByColor( CElement & elem ){ for (int i = elem.mLookupIndex; i < mLookup.size(); ++i) { if (mLookup[i]->mColor != elem.mColor) break; DoSomething(mLookup[i]); }}