C # - не добавляет элемент в индекс первого пустого массива

Хотя стандарт C ++ не имеет такого требования, некоторым компиляторам требуется, чтобы все шаблоны функций и классов были доступны в каждой используемой системе переводов. Фактически для этих компиляторов тела шаблонных функций должны быть доступны в файле заголовка. Повторить: это означает, что эти компиляторы не позволят их определять в файлах без заголовка, таких как .cpp-файлы

Существует ключевое слово export , которое должно смягчать этот проблема, но он нигде не близок к тому, чтобы быть портативным.

-2
задан user11131093 3 March 2019 в 18:33
поделиться

1 ответ

Ну, это правильно, массив исправлен, вы не можете динамически увеличивать его размер. Однако вы можете создать новый массив с большим размером, скопировать предыдущие значения и установить новые элементы равными новым значениям.

Ваши комментарии кажутся шведскими, что не очень помогает. Однако вы, вероятно, хотите сделать это вместо того, чтобы удалить установку значения в нуль, а при добавлении проверить, является ли элемент нулевым, и установить его в новое значение. И если ни один не является нулем, скопируйте массив в новый с оригинальным размером + 1

        int originalSize = 10;
        object[] sodas = new object[originalSize];

        void RemoveSodaAtIndex(int index)
        {
            if(index >= 0 && index < sodas.Length)
            {
                sodas[index] = null;
            }
        }

        void AddSoda(object s)
    {
        for(int i = 0; i < sodas.Length;i++)
        {
            if(sodas[i]==null)
            {
                sodas[i] = s;
                return;
            }
        }

        originalSize += 1;
        object[] temp = new object[originalSize];
        for (int i = 0; i < temp.Length; i++)
        {
            if (i != temp.Length - 2)
            {
                temp[i] = sodas[i];
            }
            else
            {
                temp[i] = s;
            }
        }
        sodas = temp;


    }
0
ответ дан Kyle Michiels 3 March 2019 в 18:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: