如何删除std :: tr1 :: array的所有元素?
例如,我定义了以下数组。
std::tr1::array <int, 5> a = { 1, 2, 3, 4, 5}
就像在向量中一样,我正在寻找一种诸如a.clear()
或a.erase()
的方法,但是找不到用于数组的方法。
谢谢
数组是静态大小,您不能添加或删除元素,这就是向量的作用。
一旦定义,就不能修改数组的大小。
数组的大小固定。但是,对于固定最大大小的矢量,您可以跟踪数组中使用的元素数:
array<int,5> arr;
int number_of_elements = 0;
for ( int i = 0; i < 4; ++i ) {
// arr.push_back(i)
arr[number_of_elements] = i;
number_of_elements++;
}
// arr.erase( arr.begin() + 2 )
for ( int i = 2; i < number_of_elements-1; ++i )
arr[i] = arr[i+1];
number_of_elements--;
// arr.clear()
number_of_elements = 0;
如果需要,您可以删除特定的索引信息!
for(int i=0;i<n;i++) //for deletion
{
if(arr[i]==_delete)
{
arr[i]=arr[i+1];
--n;
}
}