How to remove the element before last from deque in C++

2 Answers

0 votes
#include <iostream> 
#include <deque> 

void printdq(std::deque <int> dq) { 
    for (auto it = dq.begin(); it != dq.end(); ++it) 
        std::cout << *it << " "; 
    std::cout << '\n'; 
} 

int main() 
{ 
    std::deque<int> dq = { 5, 2, 9, 12, 7, 9, 13, 89 }; 
    
    printdq(dq);
    
    std::deque<int>::iterator it = dq.end(); 
    it--; 
    it--;
    dq.erase(it); 
    
    printdq(dq);
  
    return 0; 
} 
  
  
  
/*
run:
  
5 2 9 12 7 9 13 89 
5 2 9 12 7 9 89 
  
*/

 



answered Jul 22, 2020 by avibootz
0 votes
#include <iostream> 
#include <deque> 
 
void printdq(std::deque <int> dq) { 
    for (auto it = dq.begin(); it != dq.end(); ++it) 
        std::cout << *it << " "; 
    std::cout << '\n'; 
} 
 
int main() 
{ 
    std::deque<int> dq = { 5, 2, 9, 12, 7, 9, 13, 89 }; 
     
    printdq(dq);
     
    std::deque<int>::iterator it = dq.end() - 2; 
    dq.erase(it); 
     
    printdq(dq);
   
    return 0; 
} 
   
   
   
/*
run:
   
5 2 9 12 7 9 13 89 
5 2 9 12 7 9 89 
   
*/

 



answered Jul 22, 2020 by avibootz

Related questions

1 answer 169 views
1 answer 190 views
190 views asked Jul 29, 2020 by avibootz
1 answer 170 views
1 answer 149 views
2 answers 264 views
1 answer 204 views
...