2011-10-18 7 views
2

Я хочу, чтобы удалить элемент в 2d vector, скажем [1][1] в Field, который является 4x5 vectorКак стирать элемент в 2d-векторе?

Я попытался

Field.erase([1][1]); 

Я знаю, что для 1d vector, я бы просто сделать

Field.erase (Field.begin()+1) 

но как насчет 2d vectors?

ответ

5
Field[1].erase(Field[1].begin() + 1); 

Вот как вы стираете элемент. Но по вашим комментариям это не то, что вы действительно хотите. Фактически вы хотите очистить значение элемента до его значения по умолчанию. Для этого:

Field[1][1] = Card(); 
+0

благодарит за помощь. Выполнение вышеуказанного приведет к удалению одного элемента из поля, в результате чего его вторая строка содержит 4 вместо 5 элементов. Но что мне делать, если я просто хочу удалить содержимое этого элемента, чтобы восстановить его как пустой элемент (чтобы сохранить 2-ю строку с 5 элементами)? ('Поле' был первоначально пустой 4x5 вектор, так как она была написана как вектор <вектор > Field (4, вектор (5)); ) я думал сделать что-то вроде поля [1] .Применять (поле [1] .begin() + 1); –

+0

@MK: Что означает, что элемент пустой? –

+0

@MK: Когда вы пишете 'vector > Поле (4, вектор (5));' - Поле, конечно, не пустое. Он содержит 20 элементов, поэтому я понятия не имею, как вы используете слово «пусто» здесь. –

Смежные вопросы