fork(1) download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <initializer_list>
  5.  
  6. using std::cout;
  7. using std::endl;
  8.  
  9. template<class T, T empty_one>
  10. struct vector : public std::vector<T>{
  11. typedef typename std::vector<T>::iterator iterator;
  12. typedef typename std::vector<T>::const_iterator const_iterator;
  13.  
  14. vector(std::initializer_list<T> il) : std::vector<T>(il){}
  15.  
  16. iterator erase(const T &item){
  17. for(auto &it : *this)
  18. if(it == item)
  19. it = empty_one;
  20. }
  21. };
  22.  
  23. int main(){
  24. vector<char, '-'> v = { 'a', 'b', 'c', 'd', 'e', 'f', 'g' };
  25.  
  26. for(auto item : v)
  27. cout << item;
  28. cout << endl;
  29.  
  30. v.erase('d');
  31.  
  32. for(auto item : v)
  33. cout << item;
  34. cout << endl;
  35. return 0;
  36. }
  37.  
Success #stdin #stdout 0s 3428KB
stdin
Standard input is empty
stdout
abcdefg
abc-efg