cycling through a vector?

J

JoeC

I have a vector of elements, how can I take the first element of a
vector and put it in the end and have all the other elements cycle
down? Ex:
1, 2, 3, 4...
cycle
4, 1, 2 ,3

I still want to use the vector vec[x] or is there a liberary that is
better for this?
 
A

aep

JoeC said:
I have a vector of elements, how can I take the first element of a
vector and put it in the end and have all the other elements cycle
down? Ex:
1, 2, 3, 4...
cycle
4, 1, 2 ,3

I still want to use the vector vec[x] or is there a liberary that is
better for this?

You'll be better off using a deque.

#include <iostream>
#include <deque>
#include <iterator>
#include <algorithm>

int main(int argc, char* argv[])
{
std::deque<int> d;
d.push_back(1);
d.push_back(2);
d.push_back(3);
d.push_back(4);

std::copy(d.begin(), d.end(),
std::eek:stream_iterator<int>(std::cout, "\n"));

d.push_back(d.front());
d.pop_front();
std::copy(d.begin(), d.end(),
std::eek:stream_iterator<int>(std::cout, "\n"));
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,581
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top