C++ (Qt)struct CObject { long mID; // идентификатор CObject * mPrev; // предыдущий в списке CObject * mNext; // следующий в списке ..};
C++ (Qt)..CObject * theHead = ... // знаем голову списка CObject * data1 = Lookup(theHead, ID_1); // нашли в списке элемент с ID_1... // используем данные data1 ...CObject * data10 = Lookup(theHead, ID_10); // нашли в списке элемент с ID_10... // используем данные data10
... // используем данные data1 ...
C++ (Qt)void RelinkChildren( CObject * theSoursв2Unlink, // первый элемент для перелинковки CObject * theTarget2Link, // элемент (из др списка) к которому линковать size_t elementCount ); // число элементов
C++ (Qt)void Lookup(CObject *header, vector<long> &neededID, vector<CObject*> &result){ // neededID - ordered container CObject *tmp = header; vector<long>::const_iterator iter; int count = neededID.size(); while (tmp && count) { long id = tmp->mID; iter = std::find(neededID, id); if (iter != neededID.end()) { result.push_back(tmp); --count; } tmp = tmp->mNext; }}