Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2018, 12:49   #21
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Я о том, что внутри происходит.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 28.05.2018, 13:22   #22
melky
Пользователь
 
Регистрация: 27.05.2018
Сообщений: 46
По умолчанию

ну так msdn и поизучать что да как
Мне как-то фиолетово как оно работает если есть среди функций и не приходится изобретать велосипед.
melky вне форума Ответить с цитированием
Старый 28.05.2018, 22:16   #23
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну да, зачем знать что-то про структуры данных.

Даешь Resize(Length + 1) в цикле и .Contains в списке/массиве из 100500 элементов!
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 29.05.2018, 07:06   #24
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Спасибо. Очень нужная информация.
KAMLS вне форума Ответить с цитированием
Старый 29.05.2018, 11:27   #25
melky
Пользователь
 
Регистрация: 27.05.2018
Сообщений: 46
По умолчанию

Alex11223 а если использовать List или Dictionary и загонять 100500 элементов сильно что-то изменится ?
melky вне форума Ответить с цитированием
Старый 29.05.2018, 11:36   #26
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Смотря о чем вопрос.
Добавление — да, изменится, в List не будет перевыделения и копирования всего каждый раз.
Поиск — в Dictionary/HashSet да, не будет проходить все элементы, будет О(1), а не О(N).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 29.05.2018, 11:37   #27
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Здравствуйте! Размеры массивов меняются и всё вроде хорошо. Но вот пример кода, который постоянно выдаёт ошибку. Я там уже по буквам всё разложил и толку нет.
Код:
for(int j=0; j<n; j++)//запись из первого массива во второй без выбывшего человека
                        {
                            int b = 0;
                            b = massiv1[j];
                            if(b!=0)
                            {
                                massiv2[p1] = b;
                                p1++;
                            }
                        }
Говорит индекс находится вне границ массива.
Там фокус в чем? Там massiv1 на одну ячейку больше massiv2. Но в massiv1 есть ячейка с содержимым "0", и по условию во второй массив она записываться не должна. Тогда запись должна происходить ячейка в ячейку. Почему же тогда ошибка?
KAMLS вне форума Ответить с цитированием
Старый 29.05.2018, 11:54   #28
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

А p1 где инициализировали?
p51x на форуме Ответить с цитированием
Старый 29.05.2018, 13:06   #29
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

ну, если размер массива massiv2 точно n-1, тогда я бы написал так:
Код:
int p1=0;
for(int j=0; j<n; j++)//запись из первого массива во второй без выбывшего человека
                        {
                            int b = massiv1[j];
                            if(b!=0 && p1<(n-1))
                            {
                                massiv2[p1++] = b;
                            }
                        }
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.05.2018, 13:17   #30
melky
Пользователь
 
Регистрация: 27.05.2018
Сообщений: 46
По умолчанию

Alex11223 ну так и задачи разные, смысл применять List или Dictionary например в буфере Com порта и там удобнее пользоваться как раз Array.Resize

Ну и да, если требуется удалять внутри, то просто массив не лучшее решение.
melky вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить пару наиболее удаленных друг от друга позиций массива, в которых располагаются совпадающие элементы. (Размер массива не указан) Jackyliry Паскаль, Turbo Pascal, PascalABC.NET 1 24.12.2017 16:37
Помогите решить проблему: Найти из заданного пользователём массива самое большое число (размер массива вводит пользователь) Kokosaki Паскаль, Turbo Pascal, PascalABC.NET 16 29.12.2015 21:21
Размер массива BaronVik C# (си шарп) 1 05.01.2012 10:08
Размер массива huzik Общие вопросы C/C++ 10 15.10.2009 18:15
размер массива nosuchathing Общие вопросы C/C++ 6 15.01.2009 11:40