Вы должны выполнить итерацию от .end () - 1 к .begin ().В то же время небезопасно использовать операторы сравнения, отличные от == и! =.
Вот мой код:
vector<long long> myVector (my, my+myCount);
//sort and iterate through top correlation data counts
sort (myVector.begin(), myVector.end());
cout << endl;
int TopCorrelationDataCount = 0;
bool myVectorIterator_lastItem = false;
vector<long long>::iterator myVectorIterator=myVector.end()-1;
while (true) {
long long storedData = *myVectorIterator;
cout << TopCorrelationDataCount << " " << storedData << endl;
//prepare for next item
TopCorrelationDataCount++;
//if (TopCorrelationDataCount >= this->TopCorrelationDataSize) break;
if (myVectorIterator_lastItem) break;
myVectorIterator--;
if (myVectorIterator==myVector.begin())
{
myVectorIterator_lastItem = true;
}
}
Примечание.обычный для, потому что вы должны выяснить, если ==. begin ().Если это так, это будет ваша последняя итерация.Вы не можете проверить, если ==. Begin () - 1, так как это приведет к ошибке во время выполнения.
Если вы хотите использовать только X элементов в векторе, используйте TopCorrelationDataCount.