Чтение файлов в массив байтов можно легко выполнить с помощью istream_iterator.Итераторы потока - поток байтов
Например:
std::ifstream afile(somefile);
noskipws(afile);
...
std::vector<uint_8> vOfBytes = { std::istream_iterator<uint8_t>(afile),
std::istream_iterator<uint8_t>() };
теперь у меня есть потребность быть в состоянии сделать то же самое с векторами и строками. Проблема в том, что они будут иметь очень большой размер.
Например:
std::string astring = "abc";
std::wstring awstring = L"abc";
std::vector avector<uint32_t> = { 0, 1, 2, 3 };
// std::distance(asv.begin(), asv.end()) == 3
std::vector<uint8_t> asv = { /* astring to std::vector<uint8_t> */ };
// std::distance(awsv.begin(), awsv.end()) == 6
std::vector<uint8_t> awsv = { /* awstring to std::vector<uint8_t> */ };
// std::distance(uiv.begin(),uiv.end()) == 16
std::vector<uint8_t> uiv = { /* avectorto std::vector<uint8_t>*/};
Я просматривал ссылки CPP на некоторое время и не встретилось способ лечения выше, как поток байтов без того, чтобы свернуть свой собственный поток , Есть ли у кого-нибудь какие-либо предложения или ссылки, на которые они могли бы указать мне? Буду весьма признателен за это.
Ваш первый пример лишит пропуски, 'istream_iterator's эквивалентны использованию' 'оператор >>. – user657267
Спасибо @ user657267, я использовал его больше из того, что было после, и не добавил набор no skip ws. Я уточню вопрос. – Freddy