[tr1 :: array在C ++中删除所有元素

问题描述 投票:2回答:4

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

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

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

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

谢谢

c++ stl
4个回答
3
投票

数组是静态大小,您不能添加或删除元素,这就是向量的作用。


0
投票

一旦定义,就不能修改数组的大小。


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;

-1
投票

如果需要,您可以删除特定的索引信息!

for(int i=0;i<n;i++)                                     //for deletion
        {
            if(arr[i]==_delete)
            {   
                arr[i]=arr[i+1];
               --n;
            }
        }
© www.soinside.com 2019 - 2024. All rights reserved.