Shrink QVector to last 10 elements & rearrange one item
up vote
-1
down vote
favorite
I'm trying to find the most "efficient" way or, at least fast enough for 10k items vector to shrink it to last 10 items and move last selected item to the end of it.
I initially though of using this method for shrinking :
QVector<QModelIndex> newVec(listPrimary.end() - 10, listPrimary.end());
But that does not work, and I'm not sure how to use the Qt interators / std to get it to work...
And then once that's done do this test
if(newVec.contains(lastItem))
newVec.insert(newVec[vewVec.indexOf(newVec)],newVec.size());
else
newVec.push_back(lastItem);
c++ qt qvector
add a comment |
up vote
-1
down vote
favorite
I'm trying to find the most "efficient" way or, at least fast enough for 10k items vector to shrink it to last 10 items and move last selected item to the end of it.
I initially though of using this method for shrinking :
QVector<QModelIndex> newVec(listPrimary.end() - 10, listPrimary.end());
But that does not work, and I'm not sure how to use the Qt interators / std to get it to work...
And then once that's done do this test
if(newVec.contains(lastItem))
newVec.insert(newVec[vewVec.indexOf(newVec)],newVec.size());
else
newVec.push_back(lastItem);
c++ qt qvector
3
You might be able to doauto newVec = listPrimary.mid(listPrimary.size() - 10)
– Oleg Pyzhcov
Nov 10 at 2:29
add a comment |
up vote
-1
down vote
favorite
up vote
-1
down vote
favorite
I'm trying to find the most "efficient" way or, at least fast enough for 10k items vector to shrink it to last 10 items and move last selected item to the end of it.
I initially though of using this method for shrinking :
QVector<QModelIndex> newVec(listPrimary.end() - 10, listPrimary.end());
But that does not work, and I'm not sure how to use the Qt interators / std to get it to work...
And then once that's done do this test
if(newVec.contains(lastItem))
newVec.insert(newVec[vewVec.indexOf(newVec)],newVec.size());
else
newVec.push_back(lastItem);
c++ qt qvector
I'm trying to find the most "efficient" way or, at least fast enough for 10k items vector to shrink it to last 10 items and move last selected item to the end of it.
I initially though of using this method for shrinking :
QVector<QModelIndex> newVec(listPrimary.end() - 10, listPrimary.end());
But that does not work, and I'm not sure how to use the Qt interators / std to get it to work...
And then once that's done do this test
if(newVec.contains(lastItem))
newVec.insert(newVec[vewVec.indexOf(newVec)],newVec.size());
else
newVec.push_back(lastItem);
c++ qt qvector
c++ qt qvector
edited Nov 10 at 2:25
eyllanesc
69.5k93052
69.5k93052
asked Nov 10 at 1:20
Dariusz
131214
131214
3
You might be able to doauto newVec = listPrimary.mid(listPrimary.size() - 10)
– Oleg Pyzhcov
Nov 10 at 2:29
add a comment |
3
You might be able to doauto newVec = listPrimary.mid(listPrimary.size() - 10)
– Oleg Pyzhcov
Nov 10 at 2:29
3
3
You might be able to do
auto newVec = listPrimary.mid(listPrimary.size() - 10)
– Oleg Pyzhcov
Nov 10 at 2:29
You might be able to do
auto newVec = listPrimary.mid(listPrimary.size() - 10)
– Oleg Pyzhcov
Nov 10 at 2:29
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
QVector Class has a method that does what you want:
QVector QVector::mid(int pos, int length = ...) const
Returns a sub-vector which contains elements from this vector, starting at positionpos
. Iflength
is -1 (the default), all elements afterpos
are included; otherwiselength
elements (or all remaining elements if there are less thanlength
elements) are included.
So as suggested in the comments, you can do something like this:
auto newVec = listPrimary.mid(listPrimary.size() - 10);
You do not have to pass length
because its default value ensures that all elements after pos
are included.
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
QVector Class has a method that does what you want:
QVector QVector::mid(int pos, int length = ...) const
Returns a sub-vector which contains elements from this vector, starting at positionpos
. Iflength
is -1 (the default), all elements afterpos
are included; otherwiselength
elements (or all remaining elements if there are less thanlength
elements) are included.
So as suggested in the comments, you can do something like this:
auto newVec = listPrimary.mid(listPrimary.size() - 10);
You do not have to pass length
because its default value ensures that all elements after pos
are included.
add a comment |
up vote
1
down vote
QVector Class has a method that does what you want:
QVector QVector::mid(int pos, int length = ...) const
Returns a sub-vector which contains elements from this vector, starting at positionpos
. Iflength
is -1 (the default), all elements afterpos
are included; otherwiselength
elements (or all remaining elements if there are less thanlength
elements) are included.
So as suggested in the comments, you can do something like this:
auto newVec = listPrimary.mid(listPrimary.size() - 10);
You do not have to pass length
because its default value ensures that all elements after pos
are included.
add a comment |
up vote
1
down vote
up vote
1
down vote
QVector Class has a method that does what you want:
QVector QVector::mid(int pos, int length = ...) const
Returns a sub-vector which contains elements from this vector, starting at positionpos
. Iflength
is -1 (the default), all elements afterpos
are included; otherwiselength
elements (or all remaining elements if there are less thanlength
elements) are included.
So as suggested in the comments, you can do something like this:
auto newVec = listPrimary.mid(listPrimary.size() - 10);
You do not have to pass length
because its default value ensures that all elements after pos
are included.
QVector Class has a method that does what you want:
QVector QVector::mid(int pos, int length = ...) const
Returns a sub-vector which contains elements from this vector, starting at positionpos
. Iflength
is -1 (the default), all elements afterpos
are included; otherwiselength
elements (or all remaining elements if there are less thanlength
elements) are included.
So as suggested in the comments, you can do something like this:
auto newVec = listPrimary.mid(listPrimary.size() - 10);
You do not have to pass length
because its default value ensures that all elements after pos
are included.
answered Nov 10 at 10:15
P.W
8,6382641
8,6382641
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53235217%2fshrink-qvector-to-last-10-elements-rearrange-one-item%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
3
You might be able to do
auto newVec = listPrimary.mid(listPrimary.size() - 10)
– Oleg Pyzhcov
Nov 10 at 2:29