- лучший способ реализовать этот код?получить unsigned int из массива вектора
int getBlockVector(vector<unsigned char>& vect, const int pos, const int length)
{
int destinyInt = 0;
switch (length) {
case 1 : destinyInt = (0x00 << 24) | (0x00 << 16) | (0x00 << 8) | vecct.at(pos); break;
case 2 : destinyInt = (0x00 << 24) | (0x00 << 16) | (vect.at(pos + 1) << 8) | vect.at(pos); break;
case 3 : destinyInt = (0x00 << 24) | (vect.at(pos + 2) << 16) | (vect.at(pos + 1) << 8) | vect.at(pos); break;
case 4 : destinyInt = (vect.at(pos + 3) << 24) | (vect.at(pos + 2) << 16) | (vect.at(pos + 1) << 8) | vect.at(pos); break;
default : destinyInt = -1;
return destinyInt;}
с учетом уродливого значения по умолчанию. Как реализовать эту функцию с помощью итераторов и шаблонов для вектора, дека, очереди и т. Д.
Примечание: границы проверяются ранее, а static_cast не является желательной.
Является ли это действительно необходимо побитовое ИЛИ с '0's? – LogicStuff
@LogicStuff Ему платят за количество типизированных символов в программе. :) –
@logicStuff не очень – Holister