c1中的tr1 :: array删除所有元素

时间:2011-10-14 03:11:39

标签: c++ stl

如何删除std :: tr1 :: array的所有元素?

例如,我定义了以下数组。

std::tr1::array <int, 5> a = { 1, 2, 3, 4, 5}

就像在向量中一样,我正在寻找一种方法,例如a.clear()a.erase(),但找不到数组。

谢谢

4 个答案:

答案 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;
            }
        }