Jak przesunąć wartości w tablicy QVector, przy tym usunąć pierwszą, tak aby zrobić sobie na końcu miejsce na kolejną wartość? Jest od tego jakaś metoda, szukam i nie znalazłem. Pytanie może banalne, ale proszę o pomoc.
Pozdrawiam.
Jak przesunąć wartości w tablicy QVector, przy tym usunąć pierwszą, tak aby zrobić sobie na końcu miejsce na kolejną wartość? Jest od tego jakaś metoda, szukam i nie znalazłem. Pytanie może banalne, ale proszę o pomoc.
Pozdrawiam.
for(auto i = 1; i < vec.size(); ++i) {
vec[i-1] = vec[i];
}
vec[vec.size()-2]
oraz vec[vec.size()-1]
zawierają te same wartości, więc możesz robić co chcesz z tą drugą.
ew jak człowiek użyj std::rotate
tj. rotate(begin(v), begin(v)+1, end(v));
na przykładzie:
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int v[] = {1, 2, 3, 4};
rotate(begin(v), begin(v)+1, end(v));
for(auto e: v) {
cout << e;
}
return 0;
}
Hmmm... Znaczy, że z metod tutaj: http://doc.qt.io/qt-5/qvector.html na marne szukałem tego co mi potrzeba.
Dziękuję.