rend |
C++ Library |
const_reverse_iterator rend() const
Returns a const reverse iterator value, which points to just before the first element in the deque container. The value returned by rend() should not be dereferenced. rend() is primarily used to return a value that can be tested to see if a reverse iterator has reached the end of its container.
reverse_iterator rend()
Returns a reverse iterator value, which points to just before the first element in the deque container. The value returned by rend() should not be dereferenced. rend() is primarily used to return a value that can be tested to see if a reverse iterator has reached the end of its container.
#include <deque> #include <iostream> int main() { //default constructor std::deque<int> c1 ; //create deque with 10 copies of 4 std::deque<int> c2(10, 4) ; //copy constructor std::deque<int> c3(c2) ; int ai[] = {0, 1, 2, 3, 4, 5} ; int i ; std::deque<int> c4 ; //get_allocator std::deque<int>::allocator_type a1 = c4.get_allocator() ; //push_back for(i = 0; i < 5; i++) c4.push_back(ai[i]) ; //range copy constructor std::deque<int> c5(c4.begin(), c4.end()) ; //begin, end std::cout << "c4 (using begin, end) = " ; std::deque<int>::iterator Iter ; for(Iter = c4.begin(); Iter != c4.end(); Iter++) std::cout << *Iter << ", " ; std::cout << std::endl ; //rbegin, rend std::cout << "c4 (using rbegin, rend) = " ; std::deque<int>::reverse_iterator RevIter ; for(RevIter = c4.rbegin(); RevIter != c4.rend(); RevIter++) std::cout << *RevIter << ", " ; std::cout << std::endl ; //assign c2.assign(c5.begin(), c5.begin() + 3) ; c1.assign(10, 4) ; //at std::cout << "third element in c1 = " << c1.at(3) << std::endl ; //operator[] std::cout << "c4[3] = " << c4[3] << std::endl ; //back std::cout << "last element in c2 = " << c2.back() << std::endl ; //front std::cout << "first element in c2 = " << c2.front() << std::endl ; //size std::cout << "number of elements in c2 = " << c2.size() << std::endl ; //max_size std::cout << "max number of elements c2 can hold using current allocator = " << c2.max_size() << std::endl ; //erase c3.erase(c3.begin(), c3.begin() + 4) ; //clear c2.clear() ; //empty if (c2.empty() == true) std::cout << "c2 is now empty" << std::endl ; //resize c2.resize(10, 30) ; std::cout << "number of elements in c2 = " << c2.size() << std::endl ; std::cout << "last element in c2 = " << c2.back() << std::endl ; std::cout << "first element in c2 = " << c2.front() << std::endl ; //push_front c2.push_front(25) ; std::cout << "first element in c2 = " << c2.front() << std::endl ; //pop_back c2.pop_back() ; std::cout << "last element in c2 = " << c2.back() << std::endl ; //pop_front c2.pop_front() ; std::cout << "first element in c2 = " << c2.front() << std::endl ; //swap c3.swap(c2) ; std::cout << "number of elements in c3 = " << c3.size() << std::endl ; std::cout << "last element in c3 = " << c3.back() << std::endl ; std::cout << "first element in c3 = " << c3.front() << std::endl ; //insert c1.insert(c1.begin(), 20) ; c1.insert(c1.begin()+1, 4, 10) ; c1.insert(c1.begin()+2, c5.begin(), c5.end()) ; std::cout << "c1 = " ; for(Iter = c1.begin(); Iter != c1.end(); Iter++) std::cout << *Iter << ", " ; std::cout << std::endl ; return 0 ; }
c4 (using begin, end) = 0, 1, 2, 3, 4, c4 (using rbegin, rend) = 4, 3, 2, 1, 0, third element in c1 = 4 c4[3] = 3 last element in c2 = 2 first element in c2 = 0 number of elements in c2 = 3 max number of elements c2 can hold using current allocator = 1073741823 c2 is now empty number of elements in c2 = 10 last element in c2 = 30 first element in c2 = 30 first element in c2 = 25 last element in c2 = 30 first element in c2 = 30 number of elements in c3 = 9 last element in c3 = 30 first element in c3 = 30 c1 = 20, 10, 0, 1, 2, 3, 4, 10, 10, 10, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,