ОБСУЖДЕНИЕ

Удаление значения из целочисленного массива

3 ответов 4,8 тыс.
Статус
Закрыто для дальнейших ответов.
Автор темы
Есть массив

int a[5] = {1, 3, 4, 2, 4};

Допустим нужно выкинуть из массива члены a[1] и a[3]. В итоге получаем массив:

int a[3]={1, 4, 2};


Как называется функция, которая выполняет эту простейшую задачу???

А если нужно что-нибудь прибавить в массив?

Заранее спасибо.
 
Эта задача кажется простейшей только на первый взгляд. Такой функции нет. Для реализации такого функционала можно воспользоваться вектором из STL или писать обертку для стандартных массивов
 
А после такого объявления
Код:
int a[5] = {1, 3, 4, 2, 4};
размер массива никак не изменить уже. Особенности С++ и статических массивов.
 
Эта задача кажется простейшей только на первый взгляд. Такой функции нет. Для реализации такого функционала можно воспользоваться вектором из STL или писать обертку для стандартных массивов


Угу, если вдруг нет МСДНа:

Example
Код:
// vector_erase.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main( )
{
using namespace std;  
vector <int> v1;
vector <int>::iterator Iter;

v1.push_back( 10 );
v1.push_back( 20 );
v1.push_back( 30 );
v1.push_back( 40 );
v1.push_back( 50 );

cout << "v1 =";
for ( Iter = v1.begin( ); Iter != v1.end( ); Iter++ )
cout << " " << *Iter;
cout << endl;

v1.erase( v1.begin( ) );
cout << "v1 =";
for ( Iter = v1.begin( ); Iter != v1.end( ); Iter++ )
cout << " " << *Iter;
cout << endl;

v1.erase( v1.begin( ) + 1, v1.begin( ) + 3 );
cout << "v1 =";
for ( Iter = v1.begin( ); Iter != v1.end( ); Iter++ )
cout << " " << *Iter;
cout << endl;
}

Output
v1 = 10 20 30 40 50
v1 = 20 30 40 50
v1 = 20 50

Если вдруг понадобится из вектора сделать массив, то создаём динамический массив, размером с вектор, и заполняем значения массива значениями из вектора.
 
Статус
Закрыто для дальнейших ответов.