Ok obviously remove() works but my problem is that the vector seems to occupy the same memory as before after remove ..
for some weird reason doublevector.end() doesn't change after remove()...

Code:
#include <iostream>
#include <algorithm>
#include <vector>


int main(){

  vector <double> doublevector;
  vector <double> :: iterator theiterator;
 


  doublevector.push_back(5.67); 
  doublevector.push_back(5.67); 
  
  doublevector.push_back(-0.45); 
  doublevector.push_back(-0.45); 

  doublevector.push_back(15);

  //Prints the vector
  for  (theiterator=doublevector.begin(); theiterator != doublevector.end();theiterator++)
    cout<<"\t"<<*theiterator; 
  cout<<endl;

  //should remove all numbers that equal 5.67 from vector
  remove(doublevector.begin(),doublevector.end(), 5.67); 

  //replaces all numbers that equal -0.45 with -0.55
  replace(doublevector.begin(),doublevector.end(),-0.45,-0.55); 

  //Prints the vector
  for  (theiterator=doublevector.begin(); theiterator != doublevector.end();theiterator++)
    cout<<"\t"<<*theiterator; 
  cout<<endl;


  return 0;
}