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