fork download
  1. #include <vector>
  2. #include <map>
  3. #include <list>
  4. #include <cstdlib>
  5. #include <ctime>
  6. #include <iostream>
  7.  
  8.  
  9. bool isPresent(std::vector<int> vec, int val, int indice){
  10. for(unsigned int i = indice ; i< vec.size();++i){
  11. if(vec[i]==val)
  12. return true;
  13. }
  14. return false;
  15. }
  16.  
  17. std::vector<int> removeDoublons(const std::vector<int>& vec){
  18. std::vector<int> vecSansDoublons;
  19.  
  20. for(unsigned int i = 0 ; i< vec.size() ; ++i){
  21. if(!isPresent(vec, vec[i], i+1)){
  22. vecSansDoublons.push_back(vec[i]);
  23. }
  24. }
  25. return vecSansDoublons;
  26. }
  27.  
  28.  
  29. void directDoublonsremoval(std::vector<int>& vec){
  30.  
  31. for(unsigned int i = 0 ; i< vec.size() ; ++i){
  32. int valI = vec[i];
  33. for(unsigned int j = i+1 ; j< vec.size() ; ++j){
  34. if(vec[j]==valI){
  35. vec.erase(vec.begin()+j);
  36. }
  37. }
  38. }
  39. }
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46. int main(){
  47. srand(time(NULL));
  48. std::vector<int> vec(20,0);
  49. for(unsigned int i=0; i<vec.size();i++){
  50. vec[i] = rand()%10;
  51. }
  52.  
  53. std::cout << "vecteur avec doublons=";
  54. for(auto val : vec)
  55. std::cout << val << " ";
  56. std::cout << std::endl;
  57.  
  58.  
  59. // std::cout << "vecteur sans doublon=";
  60. // std::vector<int> vecSansDoublons = removeDoublons(vec);
  61. // for(auto val : vecSansDoublons)
  62. // std::cout << val << " ";
  63. // std::cout << std::endl;
  64.  
  65.  
  66. std::cout << "vecteur sans doublon=";
  67. directDoublonsremoval(vec);
  68. for(auto val : vec)
  69. std::cout << val << " ";
  70. std::cout << std::endl;
  71.  
  72.  
  73. return 0;
  74. }
Success #stdin #stdout 0.01s 5432KB
stdin
Standard input is empty
stdout
vecteur avec doublons=2 2 9 9 3 2 6 3 5 1 2 0 5 5 2 3 6 9 1 1 
vecteur sans doublon=2 9 3 6 5 1 0 5 1