Gets an error about the transform()

Code:
Code:
#include <iostream>
#include <cctype>
#include <iterator>

using namespace std;

string string_lower(const string &str)
{
   string x;
   transform(str.begin(), str.end(), back_inserter(x), tolower);
   return x;
}

int main(int argc, char *argv[])
{
    //Alla v&#229;ra svenska ord i en array
    string swedish[2];
    swedish[0] = "hej";
    swedish[1] = "vem";
    
    //Alla v&#229;ra engelska ord i en array
    string english[2];
    english[0] = "hi";
    english[1] = "who";
    
    /*Alla ord ska ligga i ordning s&#229; att swedish[2] representerar det svenska ordet f&#246;r english[2]*/
    //Precis XD
    
    string insert; //Namnet p&#229; stringen som anv&#228;ndaren skriver in i
    int quantity = 3; //Hur m&#229;nga ord det finns + 1. Om det finns 2 fr&#229;gor ska det vara 3 h&#228;r. Om det &#228;r 4 fr&#229;gor ska det vara 5 h&#228;r.
    int done = 0; //Hur m&#229;nga ord som har blivit svarade
    int points = 0; //Hur m&#229;nga po&#228;ng man f&#229;r
    
    //Skriver ut en text
    cout << "H&#228;r kommer du f&#229; svenska ord som du ska &#246;vers&#228;tta!\nD&#229; b&#246;rjar vi!\n\n\n";
    
    //K&#246;r en while-sats f&#246;r att alla ord ska vara med
    while (done < quantity) 
    {
          cout << "Vad heter " << swedish[done] << " p&#229; engelska?\n"; //Skriver ut vad heter lala beronde p&#229; vilket ord det &#228;r
          cin >> insert; //L&#229;ter anv&#228;ndaren skriva in ett ord
          
          string lower = string_lower(swedish[done]); //G&#246;r alla bokst&#228;ver sm&#229;
          
          if (english[done] == lower) //kollar om det &#228;r r&#228;tt
          {
                     points = points + 1; //L&#228;gg till 1 po&#228;ng
          } 
    done++;
    }
    
    cout << "Du fick " << points << " po&#228;ng!";
}