#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
vector<unsigned char> some_vector{ 'H', 'e', 'l', 'l', 'o' };
size_t i = 0;
size_t j = 5;
// using a char* pointer and a size...
std::string tmp1( reinterpret_cast<char*>(&some_vector[i]), j-i );
cout << tmp1 << endl;
// using char* pointers as iterators...
std::string tmp2( &some_vector[i], &some_vector[j] );
cout << tmp2 << endl;
// using vector iterators...
std::string tmp3( some_vector.begin()+i, some_vector.begin()+j );
cout << tmp3 << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICB2ZWN0b3I8dW5zaWduZWQgY2hhcj4gc29tZV92ZWN0b3J7ICdIJywgJ2UnLCAnbCcsICdsJywgJ28nIH07CiAgICBzaXplX3QgaSA9IDA7CiAgICBzaXplX3QgaiA9IDU7CgogICAgLy8gdXNpbmcgYSBjaGFyKiBwb2ludGVyIGFuZCBhIHNpemUuLi4KICAgIHN0ZDo6c3RyaW5nIHRtcDEoIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZzb21lX3ZlY3RvcltpXSksIGotaSApOwogICAgY291dCA8PCB0bXAxIDw8IGVuZGw7CgogICAgLy8gdXNpbmcgY2hhciogcG9pbnRlcnMgYXMgaXRlcmF0b3JzLi4uCiAgICBzdGQ6OnN0cmluZyB0bXAyKCAmc29tZV92ZWN0b3JbaV0sICZzb21lX3ZlY3RvcltqXSApOwogICAgY291dCA8PCB0bXAyIDw8IGVuZGw7CgogICAgLy8gdXNpbmcgdmVjdG9yIGl0ZXJhdG9ycy4uLgogICAgc3RkOjpzdHJpbmcgdG1wMyggc29tZV92ZWN0b3IuYmVnaW4oKStpLCBzb21lX3ZlY3Rvci5iZWdpbigpK2ogKTsKICAgIGNvdXQgPDwgdG1wMyA8PCBlbmRsOwogICAgCiAgICByZXR1cm4gMDsKfQ==