как удалить все элементы массива std :: tr1 ::?
Например, я определил следующий массив.
std::tr1::array <int, 5> a = { 1, 2, 3, 4, 5}
Как и в векторах, я ищу такой метод, как a.clear() или a.erase(), но не могу найти один для массивов.
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;
После определения размер массива не может быть изменен.