Я искал и искал stackoverflow для ответа, но не нашел то, что мне было нужно.
У меня есть процедура, которая принимает массив без знака в качестве параметра, чтобы закодировать его как Base64. Я хотел бы закодировать вектор с плавающей запятой STL (вектор) в Base64, и, следовательно, потребуется переосмыслить байты вектора с плавающей запятой как массив символов без знака, чтобы передать его в процедуру кодирования. Я пробовал несколько вещей, от переинтерпретации и статических приведений, до мем-копий и т. Д., Но ни одна из них, похоже, не работает (по крайней мере, не так, как я их реализовал).
Точно так же мне нужно будет поступить прямо противоположным образом при декодировании закодированных данных обратно в массив с плавающей точкой. Процедура декодирования предоставит декодированные данные в виде массива без знака, и мне нужно будет переосмыслить этот массив байтов, снова преобразовав его в вектор с плавающей запятой.
Вот урезанная версия моего кода C ++ для кодирования:
std::string
EncodeBase64FloatVector( const vector<float>& p_vector )
{
unsigned char* sourceArray;
// SOMEHOW FILL THE sourceArray WITH THE FLOAT VECTOR DATA BITS!!
char* target;
size_t targetSize = p_vector.size() * sizeof(float);
target = new char[ targetSize ];
int result = EncodeBase64( sourceArray, floatArraySizeInUChars, target, targetSize );
string returnResult;
if( result != -1 )
{
returnResult = target;
}
delete target;
delete sourceArray;
return returnResult;
}
Любая помощь будет принята с благодарностью. Благодаря.
Raymond.