Use delimiter.c_str() as the delimiter:
copy(x.begin(),x.end(), ostream_iterator<int>(s,delimiter.c_str()));
That way, you get a const char* pointing to the string, which is what ostream_operator expects from your std::string.
Use delimiter.c_str() as the delimiter:
copy(x.begin(),x.end(), ostream_iterator<int>(s,delimiter.c_str()));
That way, you get a const char* pointing to the string, which is what ostream_operator expects from your std::string.