#include <algorithm> // std::reverse_copy()
#include <cstdint> // std::int32_t
#include <iostream>
#include <iterator> // std::ostream_iterator
#include <vector>
// you could use a typedef to save some typing
// also to give more meaning to your vector
typedef std::vector<int> SplitValues;
SplitValues splitter(std::int32_t number)
{
SplitValues values(8);
// work on vector elements using iterators
for (auto& iter : values)
{
iter = static_cast<int>(number & 0xF); // cast the C++ way
number >>= 4; // shorter form
}
return values;
}
int main()
{
std::int32_t number = 432214123;
// local vector assigned to one returned from function
SplitValues values = splitter(number);
// display vector in reverse order using ostream iterator
// this is done with one (wrapped) line and no loop
std::reverse_copy(values.begin(), values.end(),
std::ostream_iterator<int>(std::cout, " "));
}
ICAgICNpbmNsdWRlIDxhbGdvcml0aG0+IC8vIHN0ZDo6cmV2ZXJzZV9jb3B5KCkKICAgICNpbmNsdWRlIDxjc3RkaW50PiAgIC8vIHN0ZDo6aW50MzJfdAogICAgI2luY2x1ZGUgPGlvc3RyZWFtPgogICAgI2luY2x1ZGUgPGl0ZXJhdG9yPiAgLy8gc3RkOjpvc3RyZWFtX2l0ZXJhdG9yCiAgICAjaW5jbHVkZSA8dmVjdG9yPgoKICAgIC8vIHlvdSBjb3VsZCB1c2UgYSB0eXBlZGVmIHRvIHNhdmUgc29tZSB0eXBpbmcKICAgIC8vIGFsc28gdG8gZ2l2ZSBtb3JlIG1lYW5pbmcgdG8geW91ciB2ZWN0b3IKICAgIHR5cGVkZWYgc3RkOjp2ZWN0b3I8aW50PiBTcGxpdFZhbHVlczsKICAgIAogICAgU3BsaXRWYWx1ZXMgc3BsaXR0ZXIoc3RkOjppbnQzMl90IG51bWJlcikKICAgIHsKICAgIAlTcGxpdFZhbHVlcyB2YWx1ZXMoOCk7CiAgICAKICAgICAgICAvLyB3b3JrIG9uIHZlY3RvciBlbGVtZW50cyB1c2luZyBpdGVyYXRvcnMKICAgICAgICBmb3IgKGF1dG8mIGl0ZXIgOiB2YWx1ZXMpCiAgICAgICAgewogICAgCSAgICBpdGVyID0gc3RhdGljX2Nhc3Q8aW50PihudW1iZXIgJiAweEYpOyAvLyBjYXN0IHRoZSBDKysgd2F5CiAgICAJICAgIG51bWJlciA+Pj0gNDsgLy8gc2hvcnRlciBmb3JtCiAgICAgICAgfQogICAgCiAgICAgICAgcmV0dXJuIHZhbHVlczsKICAgIH0KICAgIAogICAgaW50IG1haW4oKQogICAgewogICAgICAgIHN0ZDo6aW50MzJfdCBudW1iZXIgPSA0MzIyMTQxMjM7CiAgICAKICAgICAgICAvLyBsb2NhbCB2ZWN0b3IgYXNzaWduZWQgdG8gb25lIHJldHVybmVkIGZyb20gZnVuY3Rpb24KICAgIAlTcGxpdFZhbHVlcyB2YWx1ZXMgPSBzcGxpdHRlcihudW1iZXIpOwogICAgICAgIAogICAgICAgIC8vIGRpc3BsYXkgdmVjdG9yIGluIHJldmVyc2Ugb3JkZXIgdXNpbmcgb3N0cmVhbSBpdGVyYXRvcgogICAgICAgIC8vIHRoaXMgaXMgZG9uZSB3aXRoIG9uZSAod3JhcHBlZCkgbGluZSBhbmQgbm8gbG9vcAogICAgCXN0ZDo6cmV2ZXJzZV9jb3B5KHZhbHVlcy5iZWdpbigpLCB2YWx1ZXMuZW5kKCksCiAgICAgICAgICAgIHN0ZDo6b3N0cmVhbV9pdGVyYXRvcjxpbnQ+KHN0ZDo6Y291dCwgIiAiKSk7CiAgICB9