Как скопировать uint8 * в вектор & lt; Uint8 & gt; правильно

Я пытаюсь сделать вектор Uint8 из Uint8 *, но по некоторым причинам некоторые значения не совпадают. Вот мой код

std::vector<Uint8> wav_vector = {};
Uint8* wav_buffer_;
for (unsigned int i = 0; i < wav_length_; i++) {
wav_vector.push_back(wav_buffer_[i]);
}

Затем позже я пытаюсь проверить значения:

for (unsigned int i = 0; i < wav_length_; i++){
if (wav_buffer_[i]!=wav_vector[i]){
cout<<i<<endl;
printf("Orignal Buffer %u\n", wav_buffer_[i]);
printf("Vector Buffer %u\n", wav_vector[i]);

}
}

Вот мои примеры выходных данных:

Index: 0
Orignal Buffer 208
Vector Buffer 40

Index: 1
Orignal Buffer 72
Vector Buffer 3

Index: 2
Orignal Buffer 111
Vector Buffer 183

Index: 3
Orignal Buffer 1
Vector Buffer 97

Index: 4
Orignal Buffer 0
Vector Buffer 79

Index: 5
Orignal Buffer 0
Vector Buffer 127

Index: 8
Orignal Buffer 120
Vector Buffer 40

Index: 9
Orignal Buffer 251
Vector Buffer 3

Index: 10
Orignal Buffer 182
Vector Buffer 183

Index: 16
Orignal Buffer 0
Vector Buffer 176

Index: 17
Orignal Buffer 0
Vector Buffer 200

Index: 18
Orignal Buffer 0
Vector Buffer 109

Index: 19
Orignal Buffer 0
Vector Buffer 1

Index: 24
Orignal Buffer 0
Vector Buffer 176

Index: 25
Orignal Buffer 0
Vector Buffer 200

Index: 26
Orignal Buffer 0
Vector Buffer 109

Index: 27
Orignal Buffer 0
Vector Buffer 1

Index: 32768
Orignal Buffer 16
Vector Buffer 120

Любая помощь могла бы быть полезна.

Замечания:
Я попробовал это, и это работает. Но я хочу использовать цикл for, поскольку у меня есть другие аудиоформаты, которые требуют сдвига битов.

std::vector<Uint8> wav_vector(&wav_buffer_[0], &wav_buffer_[wav_length_]);

-1

Решение

Похоже, что есть конструктор для std::vector который можно скопировать из итератора (или указателя).

Вы могли бы сделать что-то вроде:

std::vector<uint8_t> my_vector(&wave_buffer[0], &wave_buffer[N]);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]