Convierta el vector <unsigned char> {1,2,3} en la cadena "1-2-3" COMO DÍGITOS

Quiero mostrar números en unstd::vector<unsigned char> en una pantalla, pero en camino al destinatario, necesito ingresar estos números en unstd::string.

Lo que haya intentadoatoi, reinterpret_cast, string.c_str() ...), me dio una representación sin sentido o con letras de esos números originales, es decir, sus caracteres ascii correspondientes.

Entonces, ¿cómo puedo convertir fácilmente (preferiblemente el método estándar)vector<unsigned char> {1,2,3} en unastring "1-2-3"?

En la publicación original (más tarde editada) mencioné que podía hacerlo en C # o Java. A pedido de πάντα ῥεῖ para proporcionar un ejemplo en C # o Java, aquí hay una forma rápida de Linq C #:

    public static string GetStringFromListNumData<T>(List<T> lNumData)
    {
        // if (typeof(T) != typeof(IConvertible)) throw new ArgumentException("Expecting only types that implement IConvertible !");
        string myString = "";
        lNumData.ForEach(x => myString += x + "-");
        return myString.TrimEnd('-');
    }

Respuestas a la pregunta(3)

Su respuesta a la pregunta