http://www.cplusplus.com/reference/string/string/insert/
string& insert ( size_t pos1, const string& str );
string& insert ( size_t pos1, const string& str, size_t pos2, size_t n );
string& insert ( size_t pos1, const char* s, size_t n);
string& insert ( size_t pos1, const char* s );
string& insert ( size_t pos1, size_t n, char c );
iterator insert ( iterator p, char c );
void insert ( iterator p, size_t n, char c );
template<class InputIterator>
void insert ( iterator p, InputIterator first, InputIterator last );
Ваш звонок на std::basic_string<t>::insert
не соответствует ни одной из перечисленных выше перегрузок.
a.insert(a.begin()+1, ge);
должно быть
a.insert(a.begin()+1, ge.begin(), ge.end());
или
a.insert(1, ge);
В противном случае этот код недействителен.