我不确定您为什么每次都想要一个新的,但是您可以使用标准容器,例如std::vector
:
std::vector<int> arr1{1, 2, 3, 4, 5}; //std::iota is another option
int index{};
/*loop header*/ {
//make sure arr1.size() is at least 1
std::vector<int> arr2(std::next(std::begin(arr1), ++index), std::end(arr1));
}
我使用std::next
它是因为它适用于更多场景。所有这一切都是从两个迭代器创建一个向量:必要时越过开头,越过结尾(过去是因为它是排他的)。
尽管 C++11 很好,但它并不总是成为现实。在这种情况下,这应该有效:
int arr1temp[] = {1, 2, 3, 4, 5};
std::vector<int> arr1(arr1temp, arr1temp + sizeof(arr1temp)/sizeof(arr1temp[0]));
int index = 0;
/*loop header*/ {
//make sure arr1.size() is at least 1
std::vector<int>::iterator start = arr1.begin();
std::advance(start, ++index);
std::vector<int> arr2(start, arr1.end());
}