#include <array>
#include <algorithm>
#include <iostream>
int main(int argc, char* argv[])
{
std::array<int, 4> high_numbers;
{
std::array<int, 8> some_numbers = { 0, 3, 4, 6, 2, 9, 1, 5 }; // imagine these comme from std::cin
std::sort(some_numbers.begin(), some_numbers.end());
std::copy(some_numbers.begin() + some_numbers.size() / 2, some_numbers.end(), high_numbers.begin());
} // original array disappears just like OP mentioned
std::cout << "Tell me where the damn size changes?" << std::endl;
std::for_each(high_numbers.begin(), high_numbers.end(), [](int i) { std::cout << i << " "; });
return 0;
}
I2luY2x1ZGUgPGFycmF5PgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8aW9zdHJlYW0+CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQp7CiAgICBzdGQ6OmFycmF5PGludCwgND4gaGlnaF9udW1iZXJzOwoJewoJCXN0ZDo6YXJyYXk8aW50LCA4PiBzb21lX251bWJlcnMgPSB7IDAsIDMsIDQsIDYsIDIsIDksIDEsIDUgfTsgLy8gaW1hZ2luZSB0aGVzZSBjb21tZSBmcm9tIHN0ZDo6Y2luCgkJc3RkOjpzb3J0KHNvbWVfbnVtYmVycy5iZWdpbigpLCBzb21lX251bWJlcnMuZW5kKCkpOwoJCXN0ZDo6Y29weShzb21lX251bWJlcnMuYmVnaW4oKSArIHNvbWVfbnVtYmVycy5zaXplKCkgLyAyLCBzb21lX251bWJlcnMuZW5kKCksIGhpZ2hfbnVtYmVycy5iZWdpbigpKTsKCX0gLy8gb3JpZ2luYWwgYXJyYXkgZGlzYXBwZWFycyBqdXN0IGxpa2UgT1AgbWVudGlvbmVkCgoJc3RkOjpjb3V0IDw8ICJUZWxsIG1lIHdoZXJlIHRoZSBkYW1uIHNpemUgY2hhbmdlcz8iIDw8IHN0ZDo6ZW5kbDsKCXN0ZDo6Zm9yX2VhY2goaGlnaF9udW1iZXJzLmJlZ2luKCksIGhpZ2hfbnVtYmVycy5lbmQoKSwgW10oaW50IGkpIHsgc3RkOjpjb3V0IDw8IGkgPDwgIiAiOyB9KTsKCglyZXR1cm4gMDsKfQ==